gpt4 book ai didi

具有动态变量名称的 r dplyr 过滤器

转载 作者:行者123 更新时间:2023-12-02 01:42:59 25 4
gpt4 key购买 nike

我试图仅选择没有 NA 的行:

library(dplyr)
x = data.frame(a = c(NA, 2, 3, 4))
var_a <- "a"
# This works:
x %>% filter(!is.na(a))
# That works too:
var_a <- quo(a)
x %>% filter(!is.na(!!var_a))
# But this doesn't work:
var_a <- "a"
x %>% filter(!is.na(!!var_a))

我应该在最后一行更改什么才能使其正常工作?因为我必须使用 var_a <- "a"。非常感谢!

最佳答案

它是一个字符串,所以我们可以用sym转换为符号,然后使用!!

x %>% 
filter(!is.na(!!rlang::sym(var_a)))
# a
#1 2
#2 3
#3 4
<小时/>

或者另一种选择是在filter_at中指定对象,然后进行过滤

x %>% 
filter_at(var_a, all_vars(!is.na(.)))
# a
#1 2
#2 3
#3 4

关于具有动态变量名称的 r dplyr 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49786597/

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