gpt4 book ai didi

r - 通过名称而不是数字更改R中的列名称

转载 作者:行者123 更新时间:2023-12-04 10:57:43 24 4
gpt4 key购买 nike

我在R中有一个表,其中有很多列。我想更改列名。我发现:

colnames(table)[123] <- "newName"


将第123rd列更改为名称“ newName”。但是要实现这一点,我需要找到名称为“ oldName”的列的编号。我在想这样的事情:

colnames(table)["oldName"] <- "newName"


但这没用。那么如何才能做到这一点呢?

最佳答案

使用dplyr的rename函数非常容易:

library(dplyr)
rename(mtcars, cylinders = cyl)


这会将列“ cyl”重命名为数据集“ mtcars”中的“圆柱”。

评论后编辑:

如果要重命名多个列,可以执行(不使用dplyr):

names(mtcars)[names(mtcars) %in% c("mpg", "cyl", "hp")] <- c("miles", "cylinders", "horsepower")
names(mtcars)
# [1] "miles" "cylinders" "disp" "horsepower" "drat"
# [6] "wt" "qsec" "vs" "am" "gear"
#[11] "carb"


因此,您只需要1行即可重命名多个列。当然,您可以将这些名称存储在向量中。



请注意可能涉及到的人:虽然plyr具有 rename函数是正确的,但dplyr在其当前的CRAN版本0.3.0.2中也具有 rename函数。 introduction to dplyr中对此进行了描述,如果您正在运行当前版本,则只需键入 ?dplyr::rename。如果仔细观察,您甚至可以分辨出正在使用哪个,因为plyr和dplyr的重命名功能之间有细微的差别:在plyr中,它是 plyr::rename(mtcars, c("oldName" = "newName")),而在dplyr中(如我的回答)是 dplyr::rename(mtcars, newName = oldName)



由OP评论后编辑:

我无法重现您描述的错误。这是我了解您所做的事情,但是在我的情况下,它可以正常运行而不会出现任何错误或意外行为:

df <- data.frame(DE9 = 1:2, code9 = 3:4)
df
# DE9 code9
#1 1 3
#2 2 4
dplyr::rename(df, newname = DE9)
# newname code9
#1 1 3
#2 2 4

关于r - 通过名称而不是数字更改R中的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com