我有一个名为“newprice”的数据框(见下文),我想在R中改变程序中的列名。
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
事实上,这正在做什么:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
我没有将它放在循环中,因为我希望每个列名称与您看到的不同。
当我将程序粘贴到R控制台时,这是它给我的输出:
> names(newprice)[1]<-paste(“premium”)
Error: unexpected input in "names(newprice)[1]<-paste(“"
> names(newprice)[2]<-paste(“change”)
Error: unexpected input in "names(newprice)[2]<-paste(“"
> names(newprice)[3]<-paste(“newpremium”)
Error: unexpected input in "names(newprice)[3]<-paste(“"
我同样尝试使用c()
函数 - 例如c("premium")
,而不是paste()
函数,但无济于事。
有人可以帮我解决这个问题吗?
#1楼
您可以通过以下方式进行编辑:
newprice <- edit(newprice)
并手动更改列名称。
#2楼
尝试:
names(newprice) <- c("premium", "change", "newprice")
#3楼
我用这个:
colnames(dataframe)[which(names(dataframe) == "columnName")] <- "newColumnName"
#4楼
与其他人类似:
cols <- c("premium","change","newprice")
colnames(dataframe) <- cols
非常简单易于修改。
#5楼
新建议的方法是使用setNames
函数。 见?setNames
。 由于这会创建data.frame
的新副本,因此如果您的意图是data.frame
,请务必将结果分配给原始data.frame
。
data_frame <- setNames(data_frame, c("premium","change","newprice"))
如果您使用早期答案建议的某些方式使用colnames
,则较新版本的R会向您发出警告。
如果这是data.table
,您可以使用data.table
函数setnames
,它可以通过引用修改特定列名或单个列名:
setnames(data_table, "old-name", "new-name")
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3171795