我有一个具有两个数据帧x和x1的列表x2。两者都有4列:n,m,l和k。我想选择列k的最后值最大的数据帧。
在下面的示例中,我希望选择数据帧2nd,因为对于数据帧1,K列中的最后一个值大于K列中的最后一个值。
x <- data.frame(n = c(2, 13, 5),m = c(2, 23, 6),l = c(2, 33, 7),k = c(2, 43, 8))
x1 <- data.frame((n = c(2, 3, 15),m = c(2, 3, 16),l = c(2, 3, 17),k = c(2, 3, 18))
x2<-list(x,x1)
使用lapply
,遍历列表的列表x2
并获取该k
数据帧的列的最后一个值。使用which.max
,找到具有上一个lapply
命令最大值的索引,然后从中提取该数据帧x2
注意:此代码不考虑k列的最后一个值中的平局。
x2[which.max(lapply(x2, function(x) tail(x$k, 1)))]
# [[1]]
# n m l k
# 1 2 2 2 2
# 2 3 3 3 3
# 3 15 16 17 18
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句