【发布时间】:2021-03-06 17:19:07
【问题描述】:
我目前正在使用 data.table 并尝试合并两个类似于以下内容的表:
wflanthro:
height sex l
18 1 2
18 2 2.4
19 1 3
19 2 3
20 1 3.1
20 2 3.2
21 1 4
21 2 4
22 1 5
22 2 5.1
长度:
ID low.len sex
1 20 1
2 21 2
3 22 1
4 21 1
5 19 2
我想通过将两者合并得到下表:(注意low.len和height是相互合并的)
ID low.len sex l
1 20 1 3.1
2 21 2 4
3 22 1 5
4 21 1 4
5 19 2 3
我已经阅读了 by.y 和 by.x 语句的用法,并希望在这里使用它,但是我没有运气在 by.y 和 by.x 向量中使用超过 1 个变量
这是我尝试过的:
l_value_diff_len_gr_0<-merge(wflanthro,length,by.x=("height", "sex"), by.y=("low.len","sex"))
这会出错并且不起作用。我不想使用 setnames 语句正式更改变量的名称,因为我必须在各种变量集上生成几个具有与上述相同格式的表,因此弄清楚如何将它们与上面编写的代码类似地合并更改变量名称是理想的。我做错了什么?
【问题讨论】:
-
您的示例中没有名称为
htcm的列 -
@akrun 感谢您的关注!这是我在帖子中的一个意外错误,但并没有解决该错误。我刚刚用高度变量名更新了它
-
错误是什么?请张贴其确切信息。此外,请务必避免将对象命名为 R 函数和
length等关键字。 -
如果这是一个 data.table 问题,应该按照以下方式完成
library(data.table) ; setDT(wflanthro) ; setDT(length) ; wflanthro[length, l := i.l, on = .(low.len = height, sex)]。然后检查wflanthro- 它应该就地更新
标签: r merge data.table