【问题标题】:How to replace field names in a dataframe with a vector in r?如何用 r 中的向量替换数据框中的字段名称?
【发布时间】:2020-11-23 23:04:53
【问题描述】:

我有两个数据帧,我试图将一个数据帧中的一个字符向量用于另一个数据帧的字段名称。这是我正在尝试做的一个示例。

df1 <- data.frame(a1 = c(1,2,3,4), a2 = c(5,6,7,8))
df2 <- data.frame(ID = c("a1","a2"), name = c("one","two"))

我想用字符向量df2$name替换df1的字段名得到:

one two
  1   5
  2   6
  3   7
  4   8

有什么解决办法吗?

【问题讨论】:

  • 试试names(df1) &lt;- df2$name

标签: r dataframe vector


【解决方案1】:

我们可以使用match获取'df1'的列名和'df2'的'ID'列之间匹配元素的索引,并使用它从'df2'中获取对应的'name'并分配它到'df1'的列名

names(df1) <- df2$name[match(names(df1), df2$ID)]

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多