0
点赞
收藏
分享

微信扫一扫

R语言dplyr中的Select函数变量列名


背景介绍:

R语言中,数据框列名是规范的,这里想提取Y2:Y11, Q1:Q5这样的列名,又不想写完整列名,

在外面生成一个变量名包含上面的内容,比如:

n1 = str_c("Y",2:11)
n1
n2 = str_c("Q",1:5)

然后直接根据n1,n2的内容去提取。

问题解决

library(dplyr)
dd %>% select(n1,n2) %>%

R语言dplyr中的Select函数变量列名_开发语言


有一个前缀的bug,如果数据框中有​​n1​​​和​​n2​​的列名,上面的数据就变为了:

dd$n1 = rnorm(44)
dd$n2 = rnorm(44)
library(dplyr)
dd %>% select(n1,n2) %>%

R语言dplyr中的Select函数变量列名_r语言_02


显然,这不是我们想要的。

更好的解决方案

用​​dplyr​​​中的​​all_of​​函数,使用变量的内容,而不是变量的原始名称:

dd %>% select(all_of(n1),all_of(n2)) %>%

R语言dplyr中的Select函数变量列名_开发语言_03


这才是一个比较妥帖的方案。

问题解决!


举报

相关推荐

R数据操纵:dplyr基础

0 条评论