我想以适当的方式基于正则表达式重新命名数据表中的每一列。data.table setnames与正则表达式组合
library(data.table)
DT <- data.table("a_foo" = 1:2, "bar_b" = 1:2)
a_foo bar_b
1: 1 1
2: 2 2
我想从名称中删去“_foo”和“bar_”。这条经典的线条有诀窍,但它也复制整个表格。
names(DT) <- gsub("_foo|bar_", "", names(DT))
如何使用setnames()
做同样的事情?我有很多变量,所以只是写出所有的名字不是一个选项。
尝试'setnames(DT,名称(DT),GSUB( “_foo | bar_”,“”,名称(DT)))' – akrun 2015-02-24 16:25:54
@akrun你不需要表达式中的第二个参数 – eddi 2015-02-24 16:28:49
@eddi是的,它应该可以工作,但是我正在关注de定制以避免混淆。 'setnames(x,old,new)' – akrun 2015-02-24 16:30:05