gpt4 book ai didi

r - 过滤后使用左连接更新数据

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

我有如下数据:

x1 <- data.frame(names = c('a','b', NA, NA, 'd'),
match = c('a1', 'a2', 'a10', 'a10', 'a4'),
value = rnorm(5))
x2 <- data.frame(match = c('a10','a11'), value = rnorm(2))

当 x1 名称为 NA 时,我想用 x2“值”填充 x1“值”,伪代码如下:

x1 %>% 
mutate( value = ifelse(is.na(names), left_join(x2, by = 'match'), value)).

它抛出错误信息:

Error in mutate_impl(.data, dots) : 
Evaluation error: argument "y" is missing, with no default.

我知道这是因为 left_join 问题,但我不知道如何正确编码。通常,我如何在使用 left_join(或 valuemaps)过滤后更新数据

最佳答案

首先执行left_join,然后根据names 替换value 中的数字可能更容易。 x3 是最终输出。

library(dplyr)

x1 <- data_frame(names = c('a','b', NA, NA, 'd'),
match = c('a1', 'a2', 'a10', 'a10', 'a4'),
value = rnorm(5))
x2 <- data_frame(match = c('a10','a11'), value = rnorm(2))

x3 <- x1 %>%
left_join(x2, by = "match") %>%
mutate(value.x = ifelse(is.na(names), value.y, value.x)) %>%
select(names, match, value = value.x)

关于r - 过滤后使用左连接更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135958/

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