1. Error in rbind(deparse.level, ...) : numbers of columns of arguments do not match 에러 원인
두 개의 데이터프레임을 행별 병합시 rbind 함수를 씁니다.
이 때, 이 데이터프레임의 열 숫자가 동일하지 않기 때문에 일어나는 에러입니다.
test_a <- data.frame(a=c(1,2,3),b=c(4,5,6)) test_b <- data.frame(a=c(11,22,33),b=c(44,55,66),z=c(77,88,99)) rbind(test_a,test_b) Error in rbind(deparse.level,...) : numbers of columns arguments do not match |
2. 에러 해결방법
test_a에는 두 개의 열이 있고 test_b에는 세 개의 열이 있는 데이터프레임이 생성되었습니다.
즉 열의 개수가 맞지 않기 때문에 위와 같은 오류가 납니다.
이를 해결하기 위해서 열 개수를 같게 맞추어야 하기 때문에 열 개수를 2나 3으로 맞춰줍니다.
병합 시에 주의할 점은 두 데이터프레임의 열명(column name)이 같아야 합니다!
# 열 개수를 두 개로 맞춤, test_bb <- data.frame(a=c(11,22,33),b=c(44,55,66)) rbind(test_a, test_bb) ![]()
# 열 개수를 세 개로 맞춤 test_aa <- data.frame(a=c(1,2,3),b=c(4,5,6), z=c(100,200,300)) rbind(test_aa, test_b) ![]()
|
위에서 두 데이터의 열명이 다르면 병합이 안되는 오류가 나왔었죠
현재 test_aa 에는 'a', 'b', 'zzz' 라는 열명이 저장되어 있고
test_b에는 'a', 'b', 'z' 라는 열명이 저장되어 있습니다.
그런데 각 데이터프레임에 존재하지 않는 열명을 결측치 처리하여 결과를 보여줄 수도 있습니다.
# dplyr 패키지가 설치되어 있지 않으면 install.packages("dplyr")을 실행하여 설치합니다. library(dplyr) bind_rows(test_aa, test_b) ![]()
![]() |