【问题标题】:How do you rename a column with dplyr using a character object [duplicate]如何使用字符对象重命名 dplyr 列 [重复]
【发布时间】:2021-10-30 19:25:31
【问题描述】:

我想通过使用变量以动态方式使用 dplyr 重命名列。但是,它只是将列命名为变量的名称,而不是其内容。有什么想法吗??

colnames(y)
[1] "time"         "channel_1"    "channel_2"    "channel_3"    "channel_4"    "channel_5"    "correction"   "channel.corr"

ladder.channel <- "channel_4"
fsa.bc <- y %>%
    select(-c(all_of(ladder.channel), "correction")) %>%
    rename(ladder.channel = channel.corr)

colnames(fsa.bc)
"time"           "channel_1"      "channel_2"      "channel_3"      "channel_5"      "ladder.channel"

【问题讨论】:

    标签: r dplyr rename


    【解决方案1】:

    使问题可重现:

    library(dplyr)
    
    y <- mtcars[, 1:8]
    
    names(y) <- c("time", "channel_1",  "channel_2", "channel_3", "channel_4", "channel_5", "correction",  "channel.corr")
    
    ladder.channel <-  "channel_4"
    
    fsa.bc <- 
      y %>%
      select(-c(all_of(ladder.channel), "correction"))%>% 
      rename({{ladder.channel}} := channel.corr)
    
    names(fsa.bc)
    #> [1] "time"      "channel_1" "channel_2" "channel_3" "channel_5" "channel_4"
    

    reprex package (v2.0.0) 于 2021-09-01 创建

    【讨论】:

      【解决方案2】:

      你可以使用rename_with -

      library(dplyr)
      
      y <- mtcars
      new_name <- 'MPG'
      y %>% rename_with(~new_name, mpg) %>% head
      
      #                   MPG cyl disp  hp drat    wt  qsec vs am gear carb
      #Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
      #Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
      #Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
      #Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
      #Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
      #Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
      

      在基础 R 中 -

      names(y)[match('mpg', names(y))] <- new_name
      y
      

      【讨论】:

        猜你喜欢
        • 2021-10-22
        • 1970-01-01
        • 2023-01-10
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 2018-02-27
        • 1970-01-01
        相关资源
        最近更新 更多