为了账号安全,请及时绑定邮箱和手机立即绑定

更改数据框的列名称

/ 猿问

更改数据框的列名称

慕姐4208626 2019-09-18 11:19:37

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


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


查看完整描述

3 回答

?
慕莱坞森

使用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"


查看完整回答
反对 回复 2019-09-18
?
DIEA

我用这个:


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


查看完整回答
反对 回复 2019-09-18
?
慕勒3428872

该错误是由“智能引号”(或称为它们)引起的。这里的教训是,“不要在'编辑器'中编写代码,将引号转换为智能引号”。


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

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

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


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 262 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信