改变数据框架的列名
我有一个名为"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()
函数,但没有效果。
谁能帮我解决这个问题?
362
16
使用
colnames()
函数。你也可以进行子集。
我用这个。
这个错误是由"智能引号"(或不管它们叫什么)引起的。 这里的教训是,"不要在一个将引号转换为智能引号的'编辑器中写你的代码"。
你是否只试过。
`names(newprice)[1]
新推荐的方法是使用
setNames
函数。 参见?setNames
。 因为这将创建一个新的data.frame
的副本,所以如果你想把结果分配给原来的data.frame
,请务必将结果分配给它。我也有同样的问题,这段代码帮我解决了。
和其他的相似。
如果你需要一次性重命名多个列,而你只知道旧的列名,你可以使用
colnames
函数和%in%
运算符。 例如:。
现在你想改变"坏"。 和"最坏"。 改为"good"和"best"。 和"best"。 您可以使用
尝试。
你可以直接进行编辑,由。
我的栏目名称如下
我想更改班级和性别的列名。
只是为了纠正和稍微扩展Scott Wilson的回答。 你也可以在data.frames上使用data.table的
setnames
函数。不要期望操作速度加快,但你可以期望 "setnames "对内存消耗更有效,因为它通过引用更新列名。 这可以通过
address
函数来跟踪,见下文。<!--语言。 r--!>
有几个选项是
dplyr::rename()
和dplyr::select()
。dplyr::rename()
也有三个范围的变体。dplyr::rename_all()
适用于所有列名,dplyr::rename_if()
适用于有条件的列名,dplyr::rename_at()
适用于选择命名的列。 下面的示例用下划线代替了空格和句号,并将所有内容转换为小写。dplyr::select_all()
也可以以类似的方式使用。这可能会有帮助。
使用此功能通过colname函数更改列名。
如果我们有2个数据帧,下面的工作就可以了