重命名列 R
Rename column R
我正在尝试重命名列,但我不知道该列是否会出现在数据集中。我有一个大数据集,如果存在某个列名,我想重命名它。例如:
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 不在数据集中。
有没有办法写一个代码,在名称不存在的情况下忽略列的变化?
谢谢!
有很多方法可以做到这一点。一种方法是使用名称及其相应的 'new name'(作为向量的名称)创建一个命名向量并使用它,即
#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)]
我正在尝试重命名列,但我不知道该列是否会出现在数据集中。我有一个大数据集,如果存在某个列名,我想重命名它。例如:
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 不在数据集中。
有没有办法写一个代码,在名称不存在的情况下忽略列的变化? 谢谢!
有很多方法可以做到这一点。一种方法是使用名称及其相应的 'new name'(作为向量的名称)创建一个命名向量并使用它,即
#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)]