我想以适当的方式基于正则表达式重命名数据表中的每一列。
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()
执行相同的操作?我有很多变量,所以只写出所有的名字都不是一个选择。
答案 0 :(得分:10)
你可以尝试
setnames(DT, names(DT), gsub("_foo|bar_", "", names(DT)))
基于?setnames
中的用法,即setnames(x,old,new)
或者@eddi评论
setnames(DT, gsub("_foo|bar_", "", names(DT)))