2016-12-08 10 views
0

データフレームのリストがあり、それぞれに異なる数の行があります。今、リストのすべてのデータフレームが1000行になるまで、リストのすべてのデータフレームに行を追加したいと思います。追加された行にはすべて、NAsのみが含まれている必要があります。リストのすべてのデータフレームには3つの列が含まれています。リスト内のすべてのデータフレームに対して行数が1000になるまでデータフレームのリストからデータフレームに行を追加します。

Iが最初

adder <- function(x) {rbind(x, c(NA, NA, NA))} 

機能を定義した後、しかし、これはすべてのデータフレームに対してだけではなく、1つの行を追加しlapply

dflisttest <- lapply(dflisttest, adder) 

を使用して、リストのすべてのデータフレームに適用し1000行未満のもの。リストのすべてのデータフレームが自動的に1000行になるように、どのようにループすることができますか?これはあなたのデータフレームである場合

+1

問題は再現できません。 MCVEを提供してください。例えば、各data.framesは同じ数の列を持ちますか? – lmo

答えて

0

df <- data.frame(x=c(rep(1,8),rep(2,4)), 
       y=c(rep(0,8),rep(5,4)) 

、あなたはそのnrow = 1000までの値(NA)をバインドしたい、あなたが試すことができます:

adder <- function(x) { 

     if(nrow(x)<1000) 
       x[(nrow(x)+1):1000,] <- NA 

     return(x) 
} 

この関数は、すべての列でNAを追加します最後の行から行#1000の後に

:行12の後にNAが追加され、元のサイズはdfです。

> df <- adder(df) 
> df[10:16,] 
    x y 
10 2 5 
11 2 5 
12 2 5 
13 NA NA 
14 NA NA 
15 NA NA 
16 NA NA 
+0

data.frameに既に1000行がある場合はどうすればいいですか?... prefer 'return(x [1:1000、]' –

+0

Aha、thx。はサイズを確認する関数を編集しました – OmaymaS

+0

今、働いた! – GNee

関連する問題