如何重命名具有相同名称的列,以使它们不同?

时间:2019-08-08 17:26:24

标签: r

我正在使用cbind()组合数据表中的列,其中一些列碰巧具有相同的名称但数据不同,R通常会通过在初始列名称后添加..1来捕获和更改它们,但是我猜想使用cbind()阻止了R捕获它?我想重命名通常使用colnames(data)[colnames(data)=="column"] <- column..1的列,但是由于这2列具有相同的名称,因此不能更改其中的一列而又不能更改另一列。我该如何解决?

2 个答案:

答案 0 :(得分:1)

一种简单的方法是使用janitor软件包。

df <- cbind(data.frame(col1 = c(1,2)), data.frame(col1 = c(2,3))) 
df
#>   col1 col1
#> 1    1    2
#> 2    2    3

然后我们使用clean_names函数进行整理

janitor::clean_names(df)
#>   col1 col1_2
#> 1    1      2
#> 2    2      3

答案 1 :(得分:0)

您可以使用:

重命名所有列
colnames(data)<-c("col1","col2","col3", etc)

或者如果您知道只有两列具有相同的名称,则可以执行以下操作:

colnames(data)[colnames(data)=="column"] <- c("col1","col2")

另一种解决方案是在应用cbind()之前重命名列