提问人:Sulz 提问时间:1/27/2023 最后编辑:Sulz 更新时间:2/22/2023 访问量:47
R 合并关闭值
R merge close value
问:
我的问题与此类似,但我的问题在某种程度上更容易,所以我希望有更简单的解决方案。如何根据字符串中编写的相似但不精确的时间变量合并两个数据集。 使用 R?
我的数据帧如下所示:
a <- data.frame(ID = 1:4,
EG = c("CA", "EV", "EV", "TR"),
year =c(2000, 2005, 2010, 2020), test = sample(4))
b <- data.frame(ID = 1:4,
EG = c("CA", "EV", "EV", "TR"),
test = sample(20),
year = sample(2000:2019, 20, replace=TRUE))
现在我想像 .但是我想要:如果在 b 中找不到 a 中的年份,则 a 的值应与 b 匹配,其中 B 年关闭 sd(冲突四舍五入)。这意味着在数据帧末尾,所有“ID”、“EG”、“year”列都应具有来自关闭年份 B 的测试值。merge(b, a, by=c("ID", "EG", "year"), all.x=TRUE)
答:
0赞
akrun
1/27/2023
#1
在版本中,我们可以使用dplyr
>= 1.1.0
join_by
closest
library(dplyr)
left_join(b, a, by = join_by(ID, EG, closest(year <= year)))
评论
0赞
Sulz
1/27/2023
对我来说,它给出了一个错误:即使我有 dplyr,也找不到函数“join_by”。dplyr:: join by 表示“join_by”不是从“namespace:dplyr”导出的对象。我可以用以下方法替换它吗: c() ?
0赞
akrun
1/27/2023
我提到了版本devel
0赞
Sulz
1/27/2023
不好意思。我不认识。我再试一次。首先需要加载开发版本。
上一个:观星者输出多个模型R
下一个:计算组内和时间内的百分比差异
评论