我有两个具有唯一值且长度不等的 tibbles,例如:
df1 <- structure(list(col1 = c("A", "T", "C", "D", "X", "F")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))
df2 <- structure(list(col2 = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -10L))
> df1
# A tibble: 6 × 1
col1
<chr>
1 A
2 T
3 C
4 D
5 X
6 F
> df2
# A tibble: 9 × 1
col2
<chr>
1 A
2 B
3 C
4 D
5 F
6 G
7 H
8 I
9 J
我想要得到:
> df3
# A tibble: 11 × 2
col1 col2
<chr> <chr>
1 A A
2 NA B
3 T NA
4 C C
5 D D
6 X NA
7 F F
8 NA G
9 NA H
10 NA I
11 NA J
df1 的 col1 和 df2 的 col2 中的每个相同字符串应并排位于同一行中。例如,如果 col1 和 col2 中的字符串相同,则它们应位于同一行(例如字符串 A)。如果字符串存在于 col1 中但不存在于 col2 中,则它在 col2 中应为 NA,反之亦然。
如有任何建议我将不胜感激。
基础 R 解决方案
给出
另一个基本 R 解决方案是使用
stack
+reshape
给出
第三个基本 R 选项是使用
table
给出
基准
节目
使用的基本解决方案
merge
,通过添加新列用于合并,然后将其删除。