【问题标题】:Rename column R重命名列 R
【发布时间】:2018-03-09 23:45:21
【问题描述】:

我正在尝试重命名列,但我不知道该列是否会出现在数据集中。我有一个大型数据集,如果存在某个列名,我想重命名它。例如:

A   B   C   D   E
1   4   5   9   2
3   5   6   9   1
4   4   4   9   1

newNames <- data %>% rename(1=A,2=B,3=C,4=D,5=E)

这可以重命名数据集中的内容,但我正在寻找添加更多潜在名称更改的灵活性,而不会发生错误。

newNames2 <- data %>% rename(1=A,2=B,3=C,4=D,5=E,6=F,7=G)

这个 ^ 不起作用它会给我一个错误,因为 F 和 G 不在数据集中。

如果名称不存在,是否有任何方法可以编写代码来忽略列更改? 谢谢!

【问题讨论】:

  • 对不起,我试图发布一个数据集的示例,但它没有正确,但基本上这些字母是我要更改的列名
  • 你不能重命名不存在的东西。你总是可以只使用names() 函数,比如names(data) &lt;- 1:length(data)。这样,您只需重命名数据框中的所有列,而不知道有多少列。
  • 我得到了不同的数据集,我正在尝试格式化,其中一些假设有“A”、“C”、“D”,另一个可能有“B”、“C”、“E”。我正在尝试使用一个代码来重命名该数据集存在的任何变量。

标签: r dplyr subset tidy


【解决方案1】:

有很多方法可以做到这一点。一种是使用名称及其对应的“新名称”(作为向量的名称)创建一个命名向量并使用它,即

#The below vector v1, uses LETTERS as old names and 1:7 as the new ones
v1 <- setNames(LETTERS[1:7], 1:7)
names(df) <- names(v1)[v1 %in% names(df)]

【讨论】:

    猜你喜欢
    • 2022-08-08
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 2021-11-29
    • 2021-02-09
    • 2020-05-22
    相关资源
    最近更新 更多