2017-09-17 38 views
0

"rbind"を使用して結果を取得しようとしていますが、エラーが表示されています " rbind(deparse.level、...): 無効なリスト引数:すべての変数が同じ長さ」それは同じ幅(列数)を持っていない、あなたの個々のデータフレームのように聞こえるrbind(deparse.level、...)のエラー:無効なリスト引数:すべての変数の長さが同じである必要があります

pm2 <- function(directory, id=1:322) 
{ 
    files <- list.files(path = directory, full.names = TRUE) 
    df <- data.frame() 
    for (i in 1:322) 
    { 
     fil <- read.csv(files[i]) 
     df <- rbind(df, fil) 
    } 
    df2 <- data.frame(matrix(nrow = length(id), ncol = 2)) 
    colnames(df2) <- c("id", "nobs") 
    for(i in id){ 

     rbind(df2, c(df[[id[i]]],count((df[[id[i]]])),na.rm = TRUE)) 

    } 
    df2 
} 
pm2("specdata", 1:10) 
+0

以下の再現性の例を参照してくださいあなたは[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を提供することができますか? – jsb

+0

https://ufile.io/owyu4 データファイル –

答えて

0

を持っている必要があり

plyr::rbind.fillの簡単な解決方法は、不足している列をNAで埋め尽くすことです。さまざまな幅のデータフレームをバインドしています)。

test <- mtcars[1:2,] 
ncol(test) 
# [1] 11 

modified <- test[,1:9] 
ncol(modified) 
# [1] 9 

rbind(test, modified) 
# Error in rbind(deparse.level, ...) : 
    # numbers of columns of arguments do not match 

library(plyr) 
rbind.fill(test, modified) 
    # mpg cyl disp hp drat wt qsec vs am gear carb 
# 1 21 6 160 110 3.9 2.620 16.46 0 1 4 4 
# 2 21 6 160 110 3.9 2.875 17.02 0 1 4 4 
# 3 21 6 160 110 3.9 2.620 16.46 0 1 NA NA 
# 4 21 6 160 110 3.9 2.875 17.02 0 1 NA NA 
関連する問題