我有一个向量
>a<-c(4,5,6,7,8)
我有一个data.frame
>df<-data.frame(start=c(1,4),end=c(3,5))
我想根据起始端在此df中创建第三列
>df
start end
1 1 3 mean(a[1:3])
2 4 5 mean(a[4:5])
当然,mean(a [df $ start:df $ end])不起作用。我已经通过创建一个新的data.frame解决了很长的时间,但是我想知道是否有一个简短的方法。
我们可以使用mapply
获取seq
“开始”和“结束”列的相应元素,基于该索引对“ a”进行子集,获取mean
并分配输出以在“ df”中创建新列(“均值”)
df$Mean <- mapply(function(x,y) mean(a[seq(x,y)]), df$start, df$end)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句