簡體   English   中英

根據最大列值從列表中選擇數據框

[英]select dataframes from a list based on maximum column value

我有一個具有兩個數據幀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)
if(x$k[length(x$k)] >= x1$k[length(x1$k)]) x else x1

if語句,其中x$k[length(x$k)] -從矩陣x的列k獲取最后一個元素

   n  m  l  k
1  2  2  2  2
2  3  3  3  3
3 15 16 17 18

使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM