Мне нужно применить функцию к фреймворку данных, подмножество или сгруппировать по уникальным значениям.Применить функцию к dataframe на основе уникальных значений
Мои данные выглядит следующим образом:
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_IDs, так что мне нужно автоматизировать этот процесс. Пожалуйста, помогите!
Используйте кнопку '{}', чтобы поместить данные в кодовые блоки. – jlhoward