重命名列R

重命名列R,r,dplyr,subset,tidy,R,Dplyr,Subset,Tidy,我试图重命名列,但不知道该列是否会出现在数据集中。我有一个很大的数据集,如果存在某个列名,我想重命名它。例如: 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) abcde 1 4 5 9 2 3 5 6 9 1 4 4 4 9 1 newNa

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

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)
abcde
1   4   5   9   2
3   5   6   9   1
4   4   4   9   1
newNames%重命名(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)
newNames2%重命名(1=A、2=B、3=C、4=D、5=E、6=F、7=G)
此^不起作用。请给我一个错误,因为F和G不在数据集中

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

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

#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)]
#下面的向量v1使用字母作为旧名称,1:7作为新名称

v1抱歉,我试图发布一个数据集示例,但它没有正确通过,但基本上字母是我试图更改的列名。您无法重命名不存在的内容。你可以一直使用
names()
函数,比如
names(data)我得到了不同的数据集,我正试图格式化这些数据集,其中一些数据集假设为“A”、“C”、“D”,另一些数据集可能为“B”、“C”、“E”。我正在尝试使用一个代码来重命名该数据集中存在的任何变量。