Ниже приведен простой цикл:оптимизация R Код со списком
TSDF имеет тип «POSIXct» «POSIXt» и содержит список временных меток. LISTY - это список с отметками времени и их значениями. Используя цикл FOR FOR, мне нужно пройти всю длину TSDF и в зависимости от того, какая временная метка из TSDF также доступна в DF, мне нужно присвоить ее значение newval. Код ниже работает отлично, но требуется много времени, если TSDF слишком длинный. Любые предложения по оптимизации этого кода? Заранее спасибо. Цените.
for(i in 1:length(TSDF))
{
if(any(TSDF[[i]]==LISTY[[1]][,"DATETIMEST"]))
{
newval = LISTY[[1]][which(TSDF[[i]]==LISTY[[1]][,"DATETIMEST"]),"VALUE"]
}
else{newval = oldval}
if(any(TSDF[[i]]==LISTY[[2]][,"DATETIMEST"]))
{
newval = LISTY[[2]][which(TSDF[[i]]==LISTY[[2]][,"DATETIMEST"]),"VALUE"]
}
else{newval = oldval}
}
Пожалуйста, укажите примеры наборов данных «TSDF» и «LISTY». –
этот вопрос, возможно, более уместен на codereviews –
TSDF <- as.POSIXct (c ("2015-12-19 23:40:04", "2015-12-20 00:00:02", "2015-12- 20 00:00:13 "," 2015-12-20 00:00:17 "," 2015-12-20 00:00:22 "," 2015-12-20 00:00:27 ")) –