2017-09-17 1 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

을 가져야한다

간편한 해결 방법은 누락 된 열을 NA으로 채울 plyr::rbind.fill을 사용하는 것입니다. 당신은 다양한 너비의 데이터 프레임을 바인딩하고 있습니다). 당신이 [재현 예]를 제공 할 수

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 
관련 문제