首页 > 解决方案 > 是否可以将一串列名传递给 tidy-select?

问题描述

我想创建一个将调用 tidy-select 的函数(作为 pivot_longer 的一部分),并且我希望能够将一串列名传递给函数,这样它就不会被硬编码。

例如

column<- c("c1","c2")
df %>%
    pivot_longer(cols = column,...)

据我所知,你不能这样做,因为 tidy-select 只会直接取名字

例如

pivot_longer(df, cols = c(c1,c2),...)

关于我想做什么的任何提示?

标签: rdplyr

解决方案


您可以使用all_of

pivot_longer(df, cols = all_of(column),...)

tidyr手册:

如果您有列名的字符向量,请使用all_of()any_of(),具体取决于您是否希望未知变量名导致错误,例如unnest(df, all_of(vars)) , unnest(df, - any_of(vars))


推荐阅读