【问题标题】:rename columns of dataframe重命名数据框的列
【发布时间】:2019-02-21 12:11:18
【问题描述】:

我有一个数据框,基本上看起来像这样(包含数据):

t <- data.frame(x1 = 1:5, x2 = 1:5, stingsAsFactors = FALSE)

我有另一个数据框,其中包含原始列名和每个列名的替换

n <- data.frame(abb = c("x1", "x2"), erf = c("XX1", "XX2"), stringsAsFactors = FALSE)

我想做的是根据数据框 n 中的规范重命名数据框 t 中的列。我的问题是我无法弄清楚如何使用地图来做到这一点。为什么会出现以下错误:

map2_dfr(n$abb, n$erf, function(x, y) rename(t, !!y := x))

【问题讨论】:

    标签: r tidyverse purrr


    【解决方案1】:

    我们可以使用rename_at

    library(dplyr)
    t %>%
        rename_at(n$abb, ~ n$erf)
    

    【讨论】:

    • 太棒了!谢谢
    【解决方案2】:

    这是使用match 的base R 中的单行代码,

    names(t) <- n$erf[match(names(t), n$abb)]
    t
    #  XX1 XX2
    #1   1   1
    #2   2   2
    #3   3   3
    #4   4   4
    #5   5   5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2014-11-23
      • 2017-12-28
      • 1970-01-01
      • 2022-01-20
      • 2021-12-19
      相关资源
      最近更新 更多