我想以適當的方式基於正則表達式重新命名數據表中的每一列。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