2

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

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" ))

但我收到以下错误:

错误:意外的 '=' in: " c( names(exp)[grepl ( 'variable',names(exp))] ="

我认为这与在函数中调用名称有关,我想问是否有人可以建议如何使这项工作?谢谢。

4

4 回答 4

8

为什么要打扰rename呢?

colnames(exp)[grepl('variable',colnames(exp))] <- 'variable'
于 2013-06-13T14:37:19.773 回答
2

如果您只想替换列名中等于“变量”的部分,请使用:

colnames(exp) <- gsub('variable', 'replace string', colnames(exp))
于 2015-06-11T18:39:13.720 回答
0
rename ( exp, “variable” = names(exp)[grepl ( 'variable',names(exp))])
于 2019-07-04T02:22:09.940 回答
-3

我不是 100% 确定这是否是您需要的,但这可能是一个开始。我远离 plyr

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

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

于 2013-06-13T14:42:07.260 回答