r - 根据 r 中的某些列将 2 个表连接在一起
问题描述
我有两张桌子。我对表 1 感兴趣的列是“年份”和“公司名称”。表 2 有 3 列,包括:“年份”和“公司名称”。
如何将这两个表连接在一起?我遇到的问题是表 1 有许多列,例如年份值为“Year”=“2004”和“CompanyName”=“Adidas”。例如
# There are many other columns
Year CompanyName Spent
1 2004 Adidas 50
2 2004 Nike 34
3 2004 Adidas 45
4 2005 Reebok 33
5 2006 Reebok 11
6 2006 Adidas 47
7 2007 Nike 33
8 2007 Reebok 92
9 2007 Nike 01
10 2007 Adidas 23
#I want to join this to it
Year CompanyName Loss
1 2004 Nike 23
2 2004 Adidas 22
3 2005 Reebok 633
4 2006 Reebok 2
5 2006 Adidas 09
6 2007 Reebok 22
7 2007 Nike 34
我想加入表格,所以当 Year 是 2004 并且 CompanyName 是 Adidas 时,会为 Loss 添加一个值为 23 的列
谢谢你!
解决方案
你可以这样做
library(dplyr)
df3 <- df1 %>%
left_join(df2, by = c("Year", "CompanyName"))
只要确保您在 df2 中没有重复年份和公司名称即可。您可以通过 执行此操作dplyr::distinct(df2, Year, CompanyName, .keep_all = T)
,但这可能会导致丢失一些相关信息。如果您不确定,按这两个维度聚合可能是有意义的:
df2 %>%
group_by(Year, CompanyName) %>%
summarise(Loss = sum(Loss))
推荐阅读
- clickhouse - ClickHouse 日志显示未压缩文件的哈希值不匹配
- arrays - 获取特定键的值
- r - 带有多重插补 + 多级模型 + 稳健标准误差的“向量内存耗尽”
- python - PyInstaller + Asyncpg:无法导入名称异常
- python - vscode 中有什么扩展可以让我在键入一个函数时看到函数提示?
- python - pandas 数据帧排名的顺序与原始数据帧的顺序不匹配
- c - 如何解决共享模块的全局变量问题?
- javascript - 反应功能状态未定义 no-undef
- python - 在不同的 html 标记中使用 _ngcontent 值抓取网页
- arrays - 打印缺失值