我有一個名爲「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")