代码之家  ›  专栏  ›  技术社区  ›  doraemon

是否有使用管道运算符命名数据帧的列的方法?[副本]

  •  1
  • doraemon  · 技术社区  · 2 年前

    示例数据集如下:

    a = data.frame(c(1:3), c(4:6))
    
    #a %>% `names <-` ('w', 'q')
    #The code did not work...
    

    如果我想将列重命名为“w”和“q”,我应该如何使用管道运算符而不是名称(a)=c('w','q')来获得结果?

    1 回复  |  直到 2 年前
        1
  •  2
  •   Allan Cameron    2 年前

    如果要替换所有名称,可以使用 setNames :

    a <- data.frame(x = c(1:3), y = c(4:6))
    
    a %>%
      setNames(c('w', 'q'))
    #>   w q
    #> 1 1 4
    #> 2 2 5
    #> 3 3 6
    

    这也适用于基本R管道操作符 |>

    如果你只想更换一两个,你可以使用 rename 从…起 dplyr (我想你已经加载了,因为你正在使用 %>% ):

    a %>%
      rename(z = 2)
    #>   x z
    #> 1 1 4
    #> 2 2 5
    #> 3 3 6
    

    创建于2023-09-19 reprex v2.0.2