1
두 데이터 프레임에 두 개의 공통 프레임이있는 두 개의 데이터 프레임이 있습니다. 데이터 프레임 중 하나에 여분의 행이 있습니다.데이터 프레임 중 하나에 여분의 행이 들어있는 두 개의 data.frames를 병합합니다.
> df1
type x y
1 A 10 417
2 B 2 575
3 C 3 14
4 D 944 205
5 E 44 87
6 F 355 883
7 G 73 150
> df2
X1 X2 X3 X4 X5 X6 term
1 9 28 3 34 5 39 B
2 43 7 39 41 46 32 C
3 17 30 0 27 0 9 D
4 42 32 1 10 26 49 E
5 21 17 34 28 35 12 F
6 16 10 18 25 2 0 G
난 열의 나머지 NA
를 도입하면서 term
함유 행을 삽입하는 동안 DF2 DF1에서 열 X, Y를 추가 할.
목표는 다음 얻는 것입니다 :
X1 X2 X3 X4 X5 X6 x y term
NA NA NA NA NA NA 10 417 A
9 28 3 34 5 39 2 575 B
43 7 39 41 46 32 3 14 C
17 30 0 27 0 9 944 205 D
42 32 1 10 26 49 44 87 E
21 17 34 28 35 12 355 883 F
16 10 18 25 2 0 73 150 G
내가
term
으로 일반적인 열을 사용하여 병합 기능을 시도하지만 난 솔루션
cbindPad <- function(...){
args <- list(...)
n <- sapply(args,nrow)
mx <- max(n)
pad <- function(x, mx){
if (nrow(x) < mx){
nms <- colnames(x)
padTemp <- matrix(NA, mx - nrow(x), ncol(x))
colnames(padTemp) <- nms
if (ncol(x)==0) {
return(padTemp)
} else {
return(rbind(x,padTemp))
}
}
else{
return(x)
}
}
rs <- lapply(args,pad,mx)
return(do.call(cbind,rs))
}
을 발견 한 후 작동하지 않았다 그러나 이것은하지 않았다 어느 쪽이든 일하십시오.
죄송합니다. 실제로 동일한 열 이름을 유지하도록 이름을 바꿉니다. by.x = "type", by.y = "type" '을 사용할 수 있다고 생각합니다. 대답으로 받아 들일 때까지 기다려야합니다 :) –
@ Null-Hypothesis, 공통 열이 같은 이름을 가질 때'by = type'을 사용하고'by.x = type'과'by.y = type'을 제거 할 수 있습니다. '? merge'를보세요. –