更改數據框的列名稱

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


#1樓

您能夠經過如下方式進行編輯: table

newprice <- edit(newprice)

並手動更改列名稱。 ast


#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")
相關文章
相關標籤/搜索