我有一个名为“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()函数,但没有用。

有人能帮我弄清楚吗?


当前回答

你可以通过以下方法进行编辑:

newprice <- edit(newprice)

并手动更改列名。

其他回答

你可以通过以下方法进行编辑:

newprice <- edit(newprice)

并手动更改列名。

更改数据帧列名

colnames(dataset)[colnames(dataset) == 'name'] <- 'newcolumnname'

使用colname函数更改列名。

colnames(newprice)[1] = "premium"
colnames(newprice)[2] = "change"
colnames(newprice)[3] = "newprice"

try:

names(newprice) <- c("premium", "change", "newprice")

如果您只知道旧的列名,但需要一次重命名多个列,则可以使用colnames函数和%in%操作符。例子:

df = data.frame(bad=1:3, worse=rnorm(3), worst=LETTERS[1:3])

   bad      worse    worst
1   1 -0.77915455       A
2   2  0.06717385       B
3   3 -0.02827242       C

现在你想把"bad"和"worst"换成"good"和"best"。你可以使用

colnames(df)[which(colnames(df) %in% c("bad","worst") )] <- c("good","best")

结果是

  good      worse  best
1    1 -0.6010363    A
2    2  0.7336155    B
3    3  0.9435469    C