У меня есть набор данных под названием cpue с 3,3 миллиона строк. Я создал подмножество этого фрейма данных, называемого dat.frame. (См. Ниже главы cpue и dat.frame.) Я добавил два новых поля в dat.frame: «ssh_vec» и «ssh_mag». Хотя главы cpue и dat.frame выглядят одинаково, остальные строки не находятся в одном порядке.Ускорить это для цикла?
head(cpue)
code event Lat Long stat_area Day Month Year id
1 BCO 447602 -43.45 182.73 49 17 3 1995 1
head(dat.frame)
code event Lat Long stat_area Day Month Year id cal.jdate ssh_vec ssh_mag
1 BCO 447602 -43.45 182.73 49 17 3 1995 1 2449857 56.83898 4.499350
В настоящее время, я бегу цикл, чтобы добавить ssh_vec и ssh_mag переменные «CPUE» с использованием уникального идентификатора «ID»:
cpue$ssh<- NA
cpue$sshmag<- NA
for(i in 1:nrow(dat.frame))
{
ndx<- dat.frame$id[i]
cpue_full$ssh[ndx]<- dat.frame$ssh_vec[i]
cpue_full$sshmag[ndx]<- dat.frame$ssh_mag[i]
}
Это уже работает в выходные дни и только до:
i
[1] 132778
... из:
nrow(dat.frame)
[1] 2797789
Внутри цикла нет ничего, что выглядело бы слишком вычислительно требовательным. Есть ли лучшая альтернатива?
Какова ваша 'sessionInfo() $ platform'? –
"x86_64-w64-mingw32/x64 (64-разрядная версия)" –