suffixes
(merge
)은 공통 열 이름에서만 작동합니다. 병합하기 전에 수동으로 열을 업데이트하지 않고도 나머지 열까지 확장 할 수 있습니까?병합에서 접미사를 모두 비 포함 열로 확장
-
df1 <- data.table(
a = c(1,2,3,4,5,6),
b = c('a','b','f','e','r','h'),
d = c('q','l','o','n','q','z')
)
df2 <- data.table(
a = c(1,2,3,4,5,6),
d = c('q','l','o','n','q','z')
)
colnames(merge(df1,df2, by = 'a', suffixes = c("1","2")))
#[1] "a" "b" "d1" "d2" what it does
#[1] "a" "b1" "d1" "d2" what I'd like it to do
나는이 mrip의 대답 @ 유사 취급하고있어 현재의 방법.
df1 <- data.table(
a = c(1,2,3,4,5,6),
b = c('a','b','f','e','r','h'),
r = c('a','b','f','e','r','h'),
d = c('q','l','o','n','q','z')
)
df2 <- data.table(
a = c(1,2,3,4,5,6),
c = c('a','b','f','e','r','h'),
q = c('a','b','f','e','r','h'),
d = c('q','l','o','n','q','z')
)
dfmerge <- (merge(df1,df2, by = c("a"), suffixes = c("1","2")))
setnames(
dfmerge,
setdiff(names(df1),names(df2)),
paste0(setdiff(names(df1),names(df2)),"1")
)
setnames(
dfmerge,
setdiff(names(df2),names(df1)),
paste0(setdiff(names(df2),names(df1)),"2")
)
colnames(dfmerge)
#[1] "a" "b1" "r1" "d1" "c2" "q2" "d2"
아마도'a'가 아니라 마지막 예제에서'a1'을 의미할까요? – joran
불편하지만'setnames'의 효율성으로 병합하기 전에 이름을 바꾸면 가장 간단한 해결책이 될지 궁금합니다. – A5C1D2H2I1M1N2O1R2T1
@ joran, 나는 그들이 "by"칼럼이므로 그들이하지 않았다고 생각합니다. – A5C1D2H2I1M1N2O1R2T1