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

问题描述 投票:2回答:3

我想重命名包含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))] =”

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

r rename design-patterns plyr multiple-columns
3个回答
8
投票

为什么要打扰rename呢?

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

2
投票

如果您只想替换等于'variable'的列名称部分,请使用:

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

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

-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

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

© www.soinside.com 2019 - 2024. All rights reserved.