如何使用dplyr管道从数据框两列创建命名向量?
用管道全程创建命名向量的方法
嘿,我懂你想全程用管道(pipe)完成从数据框两列生成命名向量的需求,不用中途跳出管道手动赋值名称对吧?这里有两种简洁的tidyverse风格方法可以实现:
方法1:使用deframe()函数
deframe()是tidyverse里专门用来将两列数据框转为命名向量的函数,第一列会作为向量的名称,第二列作为对应的值,完全贴合你的场景:
library(tidyverse) x <- mtcars %>% rownames_to_column("car") %>% select(car, mpg) %>% deframe() # 查看结果 x
方法2:用pull()的name参数
如果你更习惯用pull(),可以直接在pull()里指定name参数来设置向量名称,一步到位:
x <- mtcars %>% rownames_to_column("car") %>% pull(mpg, name = car) # 查看结果 x
两种方法运行后都会得到你想要的输出:
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout
21.0 21.0 22.8 21.4 18.7
Valiant Duster 360 Merc 240D Merc 230 Merc 280
18.1 14.3 24.4 22.8 19.2
这样就完美实现全程用管道操作,不用额外的赋值步骤啦~
内容的提问来源于stack exchange,提问作者guyabel
相关产品推荐
相关产品推荐

