data.table setnames与regex结合使用

时间:2015-02-24 16:23:39

标签: regex r data.table

我想以适当的方式基于正则表达式重命名数据表中的每一列。

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()执行相同的操作?我有很多变量,所以只写出所有的名字都不是一个选择。

1 个答案:

答案 0 :(得分:10)

你可以尝试

setnames(DT, names(DT), gsub("_foo|bar_", "", names(DT)))

基于?setnames中的用法,即setnames(x,old,new)

或者@eddi评论

setnames(DT, gsub("_foo|bar_", "", names(DT)))