2016-03-01 54 views
1

我有一些數據,像這樣:截斷data.frames在列表中的最短長度

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)。他們都將只有2列,但(y) and (x)

我的猜測是,sapply(myls,'[',1)將用於..

回答

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,]}) 
+0

一些關於這段代碼實際上沒有子集劃分的數據,但在從矢量替換它1:N。 –

+1

它適用於你的例子;你有什麼樣的例子沒有? –

+0

當我在我的例子中運行它時,我最終得到了4列的數據框,而不是像我開始的那樣。 –