在R中按组删除数据尾部

Jda*_*dan 3 r head lapply

我有一个类似的数据框

df <- data.frame(group=c("a", "b"), value=1:16,trim=rep(1:2))
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何删除每组的最后一行.要从每个组中删除的行数在"trim"变量中定义.
我已经想出如何使用从所有组中删除指定数量的行

x<-do.call("rbind", lapply(split(df, df$group), head,-2))
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法弄清楚如何从"trim"列中指定的组中删除行数.换句话说,我希望将a组分组以修剪最后一行,将b组修剪为最后2行.

42-*_*42- 5

尝试在组内提取第一个值:

x<-do.call("rbind", lapply(split(df, df$group), function(d) head(d,-d$trim[1]) ) )
Run Code Online (Sandbox Code Playgroud)

通常我会测试我的答案,但是在弹跳的火车上从iPhone上做这个.