如何在R中将字符串附加到变量名的子集?

5

我想改变数据框中某些变量的名称。如何在不输入每个旧名称和新名称的情况下实现这一点?我认为以下代码可能有效,但事实证明并不是这样。我试图将“Econ”附加到数据框中已有的每个名称。

    names(wb.misc)[3,13,14,20,22,47,61,62,64,68,73] <- 
         paste("Econ", names(wb.misc)[3,13,14,20,22,47,61,62,64,68,73], sep = "-")

1
你能更具体地说吗?你遇到了什么错误? - alexwhan
3
欢迎来到 Stack Overflow :) 你可能会喜欢 #005 - Anthony Damico
2个回答

10
您需要在索引周围放置c()
 names(wb.misc)[c(3,13,14,20,22,47,61,62,64,68,73)] = paste("Econ", names(wb.misc)[c(3,13,14,20,22,47,61,62,64,68,73)], sep = "-")

1

一种高效获取变量名称的方法是使用 dput(names(df)),其中 df 是您的数据框。

例如,使用内置数据集 airquality,您可以执行以下操作

dput(names(airquality))

"这给了你:"
c("Ozone", "Solar.R", "Wind", "Temp", "Month", "Day")

你可以编辑提取你想要的列,而不必从头开始输入它们。例如,假设你想要重命名以下三个变量,你可以使用gdata中的rename.vars
vars <- c("Ozone",  "Wind", "Temp")
library(gdata)
rename.vars(airquality, from=vars, to=paste0("Econ", vars))

使用实际的变量名称通常也会使您的代码更可靠。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接