我想在 tibble 中获取一个单元格的值,并在重命名列时使用它。
例如,假设在mtcars
数据帧中,我想将mpg
列第一行中的值连接到disp
列的列名。
我最初的想法是这样的:
mtcars %>%
select(mpg, cyl, disp) %>%
setNames(c('miles', 'cylinders', paste0('disp_', mpg[1])))
但是,这行不通。有什么帮助吗?
通常,您只能从具有某些dplyr
动词(如mutate
、summarize
、group_by
等(的数据框中推断列(或者如果您使用with
关键字(。setNames
是此列表中没有的基本 R 函数,因此需要显式指定mpg
来自的数据框;由于使用的是管道%>%
,因此可以使用.$mpg
来引用列:
mtcars %>%
select(mpg, cyl, disp) %>%
setNames(c('miles', 'cylinders', paste0('disp_', .$mpg[1])))
# miles cylinders disp_21
#Mazda RX4 21.0 6 160.0
# ...