r - 当这些数据帧不等长时,如何匹配两个数据帧之间的奇异值?
问题描述
假设我有一个包含在 df1 中的特定值 x(唯一)。我想将此值 x(唯一)与 df2 中包含的值 x(唯一)匹配,以获得对应的值“日期”。问题是 df1 和 df2 有两个不同的行长,因此以下函数不起作用:
match(df1$x,df2$x)
df2$date[match(df1$x,df2$x)]
df1$date = df2$date[match(df1$x,df2$x)]
示例 df1 和 df2:
df1-->
x | y | a | b |
1 2 6 9
2 2 7 2
3 4 8 1
4 5 7 2
df2-->
x | z | date | l | m |
1 2 1987 a c
2 2 1989 b c
3 2 1986 a d
最终结果示例:df1 -->
x | y | date
1 2 1987
2 2 1989
3 2 1986
解决方案
会df1$date[df1$date %in% df2$date]
工作吗?
评论后编辑
我懂了。现在我知道了。
library(dplyr)
df1 <- data.frame(x = 1:4, y = rep(c(2,4), each=2))
df2 <- data.frame(x = 1:3, z = c(2,2,2), date = 1986:1988)
inner_join(df1, df2, by = c("x")) %>%
select(-z)
#> x y date
#> 1 1 2 1986
#> 2 2 2 1987
#> 3 3 4 1988
由reprex 包(v0.2.1)于 2019-04-25 创建
推荐阅读
- django - 如何将产品 ID 动态传递给 Django 视图?
- ios - iOS Obj C Typhoon Auto Inject in a View
- python - 如何使用基于类的视图同时在 django 中注册和登录?
- c - 为什么这里的堆栈/基指针不改变?
- node.js - NPM(node.js 包管理器)无法安装 tiddlywiki
- javascript - 如何随时间绘制可缩放的 d3 折线图?
- php - PHP new DateTime() 抛出无效的 date.timezone 值
- forms - SwiftUI:当同一个表单上有一个 Picker 时,我如何导航到 NavigationLink?
- jquery - Jquery 不使用 html() 设置内容
- python - twint 发布时间数据“2020–04–29 00:00:00”与格式“%Y-%m-%d %H:%M:%S”不匹配