我喜欢在数据框中选择每个组的第一行(2,3,0,4)行.
> f<-data.frame(group=c(1,1,1,2,2,3,4),y=c(1:7))
>
> group y
> 1 1
> 1 2
> 1 3
> 2 4
> 2 5
> 3 6
> 4 7
Run Code Online (Sandbox Code Playgroud)
并获得如下数据帧
group y
1 1
1 2
2 4
2 5
4 7
Run Code Online (Sandbox Code Playgroud)
我试图使用by,head但头部不采取矢量.
谢谢您的帮助.
更传统的lapply:
k <- c(2,3,0,4)
fs <- split(f, f$group)
do.call(rbind,lapply(seq_along(k), function(i) head(fs[[i]], k[i])))
Run Code Online (Sandbox Code Playgroud)
结果是:
group y
1 1 1
2 1 2
4 2 4
5 2 5
7 4 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |