我有一个名为“newprice”的数据框(见下文),我想在R中改变程序中的列名。> newprice Chang. Chang. Chang.1 100 36 1362 120 -33 873 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 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
使用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"
DIEA
TA贡献1820条经验 获得超2个赞
我用这个:
colnames(dataframe)[which(names(dataframe) == "columnName")] <- "newColumnName"
慕勒3428872
TA贡献1848条经验 获得超6个赞
该错误是由“智能引号”(或称为它们)引起的。这里的教训是,“不要在'编辑器'中编写代码,将引号转换为智能引号”。
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
此外,您不需要paste("premium")(调用paste是多余的)并且最好放置空格<-以避免混淆(例如x <- -10; if(x<-3) "hi" else "bye"; x)。
- 3 回答
- 0 关注
- 810 浏览
添加回答
举报
0/150
提交
取消