使用plyr重命名功能重命名包含r中的模式的列

时间:2013-06-13 14:26:34

标签: r rename design-patterns plyr multiple-columns

我想重命名包含r中模式的数据框中的所有列。即,我想用列名“变量”替换包含“变量”的所有列,例如“htn.variable”。我以为我可以使用plyrgrepl重命名。我创建了一个例子:

exp<-data.frame(htn.variable = c(1,2,3), id = c(5,6,7), visit = c(1,3,4))
require(plyr)
rename ( exp, c(
names(exp)[grepl ( 'variable',names(exp))] = "variable" ))

但是我收到以下错误:

  

错误:意外的'='在:   “ C(   names(exp)[grepl('variable',names(exp))] =“

我认为这与在函数中调用名称有关,我想问一下是否有人可能会建议如何让这项工作取悦?感谢。

4 个答案:

答案 0 :(得分:7)

为什么要打扰rename

colnames(exp)[grepl('variable',colnames(exp))] <- 'variable'

答案 1 :(得分:1)

如果您只想替换等于&#39;变量&#39;的列名称部分,请使用:

colnames(exp) <- gsub('variable', 'replace string', colnames(exp))

答案 2 :(得分:0)

rename ( exp, “variable” = names(exp)[grepl ( 'variable',names(exp))])

答案 3 :(得分:-2)

我不是100%确定这是否是你需要的,但它可能是一个开始。我远离了普莱尔

for (i in 1:ncol(exp)){
    if (substr(names(exp)[i],5,12) == "variable"){
        names(exp)[i] <- "new.variable"    #or any new var name 
    }
}
exp

您也可以删除变量名称的前四个元素。