r - Adding column to ather dataframe in R
问题描述
It must be somewhere already solved, but I cannot find it. So, please:
df1 :
X Y ID
1 2 22
4 6 23
. . .
df2 :
B A ID
3 4 22
4 3 23
. . .
I want new df:
X Y ID A
1 2 22 4
4 6 23 3
. . .
df1 and df2 has a different length. The length of df shold be the same as length of df1.
Could somebody help me or send me a link? merge, left_join do not work..
解决方案
您可以使用从match
to添加列并保持.A
df2
df1
df1
df1$A <- df2$A[match(df1$ID, df2$ID)]
df1
# X Y ID A
#1 1 2 22 4
#2 4 6 23 3
或使用merge
merge(df1, df2[c("ID","A")], all.x=TRUE)
# ID X Y A
#1 22 1 2 4
#2 23 4 6 3
万一您有不止一排ID
在df2
使用中aggregate
。
merge(df1, aggregate(A ~ ID, df2, head, n=1), all.x=TRUE)
推荐阅读
- sql - 从表中选择“姓名”+ (':__________')
- regex - 正则表达式替代负前瞻
- fullscreen - 如何解决视频全屏后被导航栏覆盖的问题
- azure - 将后端服务部署到 Azure Web 应用服务时出现 HTTP 错误 500.30
- javascript - React 在浏览器后退按钮上显示自定义模式
- mysql - 带有 concat 的 SQL 查询列别名不起作用
- swiftui - 对齐表单部分内的文本和文本字段
- reactjs - 后代更改时更新组件
- php - 在 PHP 中过滤动态电子商务
- ios - 如何增加 MKMarkerAnnotationView 触摸和拖动区域?