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

use*_*486 2 design-patterns r rename multiple-columns plyr

我想重命名包含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" ))
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:错误:意外'='in:"c(names(exp)[grepl('variable',names(exp))] ="

我认为这与在一个函数中调用一个名字有关,我想问一下是否有人可能有一个建议如何让这个工作好吗?谢谢.

jor*_*ran 8

为什么要打扰rename呢?

colnames(exp)[grepl('variable',colnames(exp))] <- 'variable'
Run Code Online (Sandbox Code Playgroud)

  • 好的解决方案+1!唯一的'竞争者'将是来自`data.table`的`setnames`,它也适用于`df`. (2认同)