Обратные имена столбцов данных вокруг разделителя? - PullRequest
0 голосов
/ 03 января 2019

У меня есть такой кадр данных:

testData <-read.table(header = TRUE, text = "
id    foo1_varA foo2_varA  t1_varB t2_varB
'01'   'A'      'D'        '1'     '4'
'02'   'B'      'E'        '2'     '5'
'03'   'C'      'F'        '3'     '6'
")

Я хочу переименовать столбцы, изменив порядок текста на каждой стороне символа '_', когда он присутствует, в результате чего появятся имена столбцов:

id varA_foo1, varA_foo2, varB_t1, varB_t2 

Количество столбцов зависит от исходных данных, поскольку оно является результатом операции CAST data.table.

Я могу сделать это с помощью одной строки:

foo <- "AA_BB"
parts <- unlist(strsplit(foo,  split='_'))
foo2 <- paste0(parts[2], "_", parts[1])

Но я не знаю, как применить это к colnames ().

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 03 января 2019

Вы можете использовать

names(df) <- gsub('(.*)_(.*)', '\\2_\\1', names(df))

, что дает,

names(df)
#[1] "id"        "varA_foo1" "varA_foo2" "varB_t1"   "varB_t2"  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...