我有一个名为“newprice”的数据框(见下文),我想在R中改变程序中的列名。 函数
> newprice Chang. Chang. Chang. 1 100 36 136 2 120 -33 87 3 150 14 164
事实上,这正在作什么: spa
names(newprice)[1]<-paste("premium") names(newprice)[2]<-paste("change") names(newprice)[3]<-paste("newprice")
我没有将它放在循环中,由于我但愿每一个列名称与您看到的不一样。 code
当我将程序粘贴到R控制台时,这是它给个人输出: rem
> 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()
函数,但无济于事。 input
有人能够帮我解决这个问题吗? it
您能够经过如下方式进行编辑: table
newprice <- edit(newprice)
并手动更改列名称。 ast
尝试: 循环
names(newprice) <- c("premium", "change", "newprice")
我用这个: 引用
colnames(dataframe)[which(names(dataframe) == "columnName")] <- "newColumnName"
与其余人相似:
cols <- c("premium","change","newprice") colnames(dataframe) <- cols
很是简单易于修改。
新建议的方法是使用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")