gpt4 book ai didi

r - 如何根据R中的ID将一个数据帧中的列添加到另一个数据帧?

转载 作者:行者123 更新时间:2023-12-02 02:02:12 25 4
gpt4 key购买 nike

我有两个由字符串组成的不同数据框(数千行)。他们每个人都有不同数量的条目。我正在尝试找到一个代码,允许我将 df2 中“characteristic”列的内容关联到 df1(参见下面的示例):

Df1:

<表类=“s-表”><标题>ID信息 <正文>11AA信息122BB信息233CC信息344DD信息411AA信息122BB信息2

Df2:

<表类=“s-表”><标题>ID特征 <正文>11AA字符122BB字符233CC字符344DD字符4

预期结果是:

Df3:

<表类=“s-表”><标题>ID信息特征 <正文>11AA信息1字符122BB信息2字符233CC信息3字符344DD信息4字符411AA信息1字符122BB信息2字符2

我尝试使用inner_join(df1,df2,by =“ID”),但生成的数据帧(df3)通常比原始数据帧(df1)有更多的行,并且我需要生成的数据帧(df3)与原始数据帧(df3)保持相同的结构原来的(df1),我只需要添加额外的列。

是否有用于此类操作的内置函数?

最佳答案

merge(Df1, Df2, by = "ID")
# ID Information Characteristic
# 1 11AA info1 char1
# 2 22BB info2 char2
# 3 22BB info2 char2
# 4 33CC info3 char3
# 5 44DD info4 char4

如果您也需要非匹配项(因为您的数据其中一个中有 11AB 而另一个则没有),则使用 all=TRUE (或 all. x=all.y,您的选择)。

merge(Df1, Df2, by = "ID", all=TRUE)
# ID Information Characteristic
# 1 11AA info1 char1
# 2 11AB info1 <NA>
# 3 22BB info2 char2
# 4 22BB info2 char2
# 5 33CC info3 char3
# 6 44DD info4 char4

数据

Df1 <- structure(list(ID = c("11AA", "22BB", "33CC", "44DD", "11AB", "22BB"), Information = c("info1", "info2", "info3", "info4", "info1", "info2")), class = "data.frame", row.names = c(NA, -6L))
Df2 <- structure(list(ID = c("11AA", "22BB", "33CC", "44DD"), Characteristic = c("char1", "char2", "char3", "char4")), class = "data.frame", row.names = c(NA, -4L))

关于r - 如何根据R中的ID将一个数据帧中的列添加到另一个数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68866208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com