我正在尝试将我的Dataframe列从第5列重命名为我的数据框中的总列数。下面是我编码重命名的R循环。
for(i in 5:NCOL(raw_data_ui)){
colnames(raw_data_ui[i]) <- paste(substr(colnames(raw_data_ui[i]),7,9), substr(colnames(raw_data_ui[i]),11,14), sep = "-")
}
但是,我的代码没有更改列名。例如,我的第5列名称是“Count.Feb.2015”。运行上面的代码后,名称没有改变。
有人能告诉我我的代码出了什么问题。
谢谢,
莫汉
答案 0 :(得分:2)
你想要更改第i个colname,这就是为什么括号需要在后面的括号之后站立,如
colnames(raw_data_ui)[i]
为了给出更清晰的观点,一些更简单的例子:
d <- data.frame(a=1, b=2, c=3)
您的
版本colnames(d[2])<-"Y"
将创建一个新的实例/实体,这是d的第二行。更改任何内容后,将创建副本,例如名称,并且d
的链接将丢失。
colnames(d)[2]<-"Y"
将更改第二个名称,对d的引用完整无缺。