【发布时间】:2015-02-10 13:23:25
【问题描述】:
我需要将函数应用于数据帧,按唯一值进行子集化或分组。
我的数据如下所示:
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
我的目标是通过在每个 JulDate 为每个唯一的 ELK_ID 随机选择 4 行来创建一个新的 data.frame。 如果我手动完成,对于每个唯一的 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,所以我需要自动化这个过程。 请帮忙!
【问题讨论】:
-
使用
{}按钮将数据放入代码块中。
标签: r function unique lapply rbind