我想重命名包含r中模式的数据框中的所有列。即,我想用列名“变量”替换包含“变量”的所有列,例如“htn.variable”。我以为我可以使用plyr
和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" ))
但是我收到以下错误:
错误:意外的'='在: “ C( names(exp)[grepl('variable',names(exp))] =“
我认为这与在函数中调用名称有关,我想问一下是否有人可能会建议如何让这项工作取悦?感谢。
答案 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
您也可以删除变量名称的前四个元素。