将列表中的data.frames截断为最短的长度

时间:2016-03-01 16:31:25

标签: r

我有一些类似的数据:

df1 = (cbind(c(1,2,3),c(4,5,7)))
df2= cbind(c(1,2,5,8,1,7),c(1,2,5,8,1,7))
myls=list(df1,df2)

我正在寻找一种方法来将df2切割成d1的长度。这可以通过切断df2末尾的任何数字来完成。希望该解决方案还允许列表中超过2 df。实际数据集有1.4万个点和一些不同的dfs(df1,df2,df3....df(n)。它们只有(y) and (x)只有2列。

我的猜测是sapply(myls,'[',1)将被使用..

2 个答案:

答案 0 :(得分:2)

我们也可以使用head

n <- min(vapply(myls, nrow, 0))
lapply(myls, head, n)

答案 1 :(得分:1)

n <- min( sapply(myls, nrow ) )
lapply(myls, function(x){x[1:n,]})