给出最小数据示例:
dfA <- data.frame(A=c("a","a","a"))
dfB <- data.frame(B=c("b","b"))
dfC <- data.frame(C=c("c","c","c"))
combineList <- list(dfA, dfB, dfC)
我想返回一个列表,每个列表元素一个数据帧,具有最大行数的数据帧,即dfA作为一个列表元素,而dfC作为第二个列表元素。由于行数太少,因此应忽略dfB。
另一个例子:
dfA <- data.frame(c("a","a","a"))
dfB <- data.frame(c("b","b"))
dfC <- data.frame(c("c","c","c"))
dfD <- data.frame(c("d","d","d","d","d"))
combineList <- list(dfA, dfB, dfC, dfD)
我应该只列出一个元素:dfD,因为它有五个元素。
我正在尝试避免使用带有整数标志的for循环的一些不可思议的C样式集。
谢谢
答案 0 :(得分:3)
我们可以使用它:
ind <- sapply(combineList, nrow)
combineList[ind==max(ind)]
答案 1 :(得分:1)
我们可以使用
combineList[which.max(sapply(combineList, nrow))]