如何在dplyr中用变量选择数据框列?(附错误代码示例)
修正方案:在dplyr中使用变量指定列名
你的代码问题在于select(A, select_one_col)会将select_one_col视为列名而非变量,导致无法正确读取变量中存储的列名。以下两种方法可以在保持原有代码风格的前提下解决问题:
方法1:使用大括号插值({{ }})
这是dplyr推荐的传递变量的语法,能直接将变量值注入到select调用中:
library(dplyr) select_one_col = 'B' data.frame('A' = 1:3, 'B' = 1:3) %>% select(A, {{ select_one_col }})
方法2:使用all_of()函数
适合处理字符串类型的列名变量,明确告诉dplyr引用变量中的字符串值:
library(dplyr) select_one_col = 'B' data.frame('A' = 1:3, 'B' = 1:3) %>% select(A, all_of(select_one_col))
两种方法都能保留你原有的管道操作风格,若后续需要选择多列(变量为字符串向量),all_of()会更灵活。
内容的提问来源于stack exchange,提问作者Bogaso
相关产品推荐
相关产品推荐

