fre*_*eya 3 r merging-data dataframe
我有2张大桌子。一个带有标识符(未排序),另一个带有标识符列表(包含第一个表中的所有内容)以及一个变量的关联值。我想在我的第一个表中添加一列,其中包含第二个表中的关联值。有没有一种聪明的方法来使用 R 的已实现功能?
IE
table 1
id
8979786
62782
6268768
6776566
table 2
id var
1 5
2 2
3 NA
…
9999999 6
Run Code Online (Sandbox Code Playgroud)
结果应该是
table1
id var
8979786 5
62782 NA
6268768 7
4776566 4
Run Code Online (Sandbox Code Playgroud)
提前致谢
所以该id列在两个表中?你可以merge把它们放在一起:merge(table1, table2, sort = FALSE)。有许多合并选项可供探索,可让您模拟不同类型的联接,类似于 SQL 中的内联接、左联接、右联接和外联接。我在sort这里添加了附加参数以保留 table1 的原始顺序。
如果表 1 中有 id 而表 2 中没有,并且您想为这些显示 NA,请将其添加all.x = TRUE为参数。这相当于左连接。all.y是右连接,all = TRUE相当于全外连接。
可重现的例子:
> set.seed(1)
> table1 <- data.frame( id = sample(1:5, 5, FALSE))
> table1
id
1 2
2 5
3 4
4 3
5 1
> table2 <- data.frame( id = 1:5, var = rnorm(5))
> table2
id var
1 1 1.2724293
2 2 0.4146414
3 3 -1.5399500
4 4 -0.9285670
5 5 -0.2947204
> merge(table1, table2, sort = FALSE)
id var
1 2 0.4146414
2 5 -0.2947204
3 4 -0.9285670
4 3 -1.5399500
5 1 1.2724293
Run Code Online (Sandbox Code Playgroud)