更改数据框的列名称

我有一个名为“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()函数,但无济于事。

有人能帮我解决这个问题吗?


使用colnames()函数:

R> X <- data.frame(bad=1:3, worse=rnorm(3))
R> X
  bad     worse
1   1 -2.440467
2   2  1.320113
3   3 -0.306639
R> colnames(X) <- c("good", "better")
R> X
  good    better
1    1 -2.440467
2    2  1.320113
3    3 -0.306639

你也可以将子集:

R> colnames(X)[2] <- "superduper"

我使用这个:

colnames(dataframe)[which(names(dataframe) == "columnName")] <- "newColumnName"

错误是由“聪明的引号”(或任何他们称之为的)引起的。 这里的教训是,“不要在一个将报价转换为智能报价的'编辑器'中编写代码”。

names(newprice)[1]<-paste(“premium”)  # error
names(newprice)[1]<-paste("premium")  # works

此外,您不需要paste("premium")paste的调用是多余的),将空格放在<-以避免混淆是个好主意(例如x <- -10; if(x<-3) "hi" else "bye"; x )。

链接地址: http://www.djcxy.com/p/64893.html

上一篇: Changing column names of a data frame

下一篇: CakePHP Association is not working with userdata to userdatatype