如何返回最大增长数据帧列表?

时间:2018-07-31 16:15:52

标签: r

给出最小数据示例:

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样式集。

谢谢

2 个答案:

答案 0 :(得分:3)

我们可以使用它:

ind <- sapply(combineList, nrow)
combineList[ind==max(ind)]

答案 1 :(得分:1)

我们可以使用

combineList[which.max(sapply(combineList, nrow))]