【发布时间】:2020-12-05 19:06:54
【问题描述】:
我有数据集dm,它包含 1000 行和 15 列,看起来像:
dm <- "ID NAME col1 col2 col3 col4 col5
123 a1 M 20 2.0 56 3
234 b1 M 25 2.2 54 3
345 c1 F 23 2.3 52 2
456 d1 M 24 2.5 50 2
567 e1 F 26 2.6 48 2
678 f1 F 28 2.8 46 1
789 h1 M 29 2.9 44 1
900 k1 M 27 3.1 42 0
123 a1 M 27 3.2 40 0
234 b1 M 27 3.4 38 -1
345 c1 F 25 3.5 36 -1"
dm <- read.table(text = dm, header = TRUE)
我的其他数据框 df2 包含 2000 行 5 列看起来像
df2 <- "ID NAME col1 col2 col3
123 a1 0 1 2
234 b1 1 0 1
345 c1 2 2 0
456 d1 0 1 1"
df2 <- read.table(text = df2, header = TRUE)
当我使用dplyrright_joindf3 <- right_join(df2,dm,c("ID","NAME"))时
它是正确的,但出了问题的是结果输出显示如下
ID NAME col1 col2 col3 col4 col5 col10 col12 col13 …
123 a1 M 20 2.0 56 3 0 1 2
234 b1 M 25 2.2 54 3 1 0 1
345 c1 F 23 2.3 52 2 2 2 0
456 d1 M 24 2.5 50 2 0 1 1
123 a1 M 20 2.0 56 3 NA NA NA
234 b1 M 25 2.2 54 3 NA NA NA
345 c1 F 23 2.3 52 2 NA NA NA
456 d1 M 24 2.5 50 2 NA NA NA
预期结果:
ID NAME col1 col2 col3 col4 col5 col10 col12 col13 …
123 a1 M 20 2.0 56 3 0 1 2
234 b1 M 25 2.2 54 3 1 0 1
345 c1 F 23 2.3 52 2 2 2 0
456 d1 M 24 2.5 50 2 0 1 1
123 a1 M 20 2.0 56 3 0 1 2
234 b1 M 25 2.2 54 3 1 0 1
345 c1 F 23 2.3 52 2 2 2 0
456 d1 M 24 2.5 50 2 0 1 1
【问题讨论】:
-
这很奇怪。那肯定看起来它正在以相反的顺序使用数据集。尝试先列出 dm 进行左连接。
-
你可以试试
df3 <- merge(dm,df2,by.x = c('ID','NAME'),by.y = c('ID','NAME'),all.x = T)