Мне нужно применить функцию к кадру данных, подмноженому или сгруппированному по уникальным значениям.
Мои данные выглядят так:
FID FIX_NO ELK_ID ALTITUDE XLOC YLOC DATE_TIME JulDate
1 NA 5296 393 2260.785 547561.3 4771900 NA 140
2 NA 5297 393 2254.992 547555.9 4771906 NA 140
3 NA 5298 393 2256.078 547563.5 4771901 NA 140
4 NA 5299 393 2247.047 547564.7 4771907 NA 140
5 NA 5300 393 2264.875 547558.3 4771903 NA 140
6 NA 5301 393 2259.496 547554.1 4771925 NA 140
...
24247 NA 4389 527 2204.047 558465.7 4775358 NA 161
24248 NA 4390 527 2279.078 558884.1 4775713 NA 161
24249 NA 4391 527 2270.590 558807.9 4775825 NA 161
24250 NA 4392 527 2265.258 558732.2 4775805 NA 161
24251 NA 4393 527 2238.375 558672.4 4775781 NA 161
24252 NA 4394 527 2250.055 558686.6 4775775 NA 161
Моя цель — создать новый data.frame, случайным образом выбрав 4 строки для каждой JulDate для каждого уникального ELK_ID. Если я сделаю это вручную, для каждого уникального ELK_ID мой код будет следующим:
oneelk <- subset(dataset, ELK_ID == 393)
newdata <- do.call(rbind,lapply(split(oneelk,oneelk$JulDate),
function(x)x[sample(1:nrow(x),4),]))
Есть >40 ELK_ID, поэтому мне нужно автоматизировать процесс. Пожалуйста, помогите!
{}
, чтобы поместить данные в блоки кода. - person jlhoward   schedule 12.12.2014