我正在处理几个数据集,我想从中选择变量(如果存在)。
我正在使用cookiecutter生成模板,它看起来或多或少像这样(与this SO question相关)。
{{cookiecutter.df}} %>%
select(
{{cookiecutter.var1}},
{{cookiecutter.var2}},
{{cookiecutter.var3}},
{{cookiecutter.var4}}
)
如果变量在此数据集中不可用,则将其转换为Python None
类型。因此,我将此变量设置为NULL
值。
我的问题是
library(tidyverse)
None <- NULL
mtcars %>%
select(
mpg,
None,
cyl,
None
)
这给了我以下的弃用警告。
Warning message:
Using an external vector in selections was deprecated in tidyselect 1.1.0.
ℹ Please use `all_of()` or `any_of()` instead.
# Was:
data %>% select(None)
# Now:
data %>% select(all_of(None))
See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
这里的问题是什么,如何解决?我试着玩all_of()
和any_of()
,但没有解决它。
注意:在我的示例中,None
变量的双重使用指的是在我的数据集中不可用的两个变量,至少在这个示例中是这样。
我希望一切都很清楚,谢谢!如果没有,我会努力让它更清晰。
1条答案
按热度按时间unftdfkk1#
很难回答你的问题,因为你没有提供你预期的结果。我们无法知道您的真实的数据是什么样子,以及您想从中获得什么。
如果你想让
select()
在找不到变量时不会失败,你应该使用any_of()
:创建于2023-05-10带有reprex v2.0.2
但是,不幸的是,您不能在此函数中使用无引号的语法。