【问题标题】:How to index tibble in tidyverse setNames()如何在 tidyverse setNames() 中索引 tibble
【发布时间】:2018-06-20 17:42:15
【问题描述】:

我想在 tibble 中获取一个单元格的值并将其用于重命名列。

例如,假设在mtcars 数据框中,我想将mpg 列的第一行中的值连接到disp 列的列名。

我最初的想法是这样的:

mtcars %>% 
  select(mpg, cyl, disp) %>% 
  setNames(c('miles', 'cylinders', paste0('disp_', mpg[1])))

但是,这不起作用。有什么帮助吗?

【问题讨论】:

    标签: r tidyverse


    【解决方案1】:

    通常,您只能从具有某些 dplyr 动词的数据框中推断列,例如 mutatesummarizegroup_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
    # ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-27
      • 2018-03-17
      • 1970-01-01
      • 2021-07-23
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      相关资源
      最近更新 更多