围绕分隔符反转数据框名称?

标签 r dataframe

我有一个这样的数据框:

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 

列数因源数据而异,因为它是 data.table CAST 操作的结果。

我可以用一个字符串做到这一点:

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

但我不知道如何用 colnames() 应用它。

如有任何帮助,我们将不胜感激!

最佳答案

你可以使用

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

这给出了,

names(df)
#[1] "id"        "varA_foo1" "varA_foo2" "varB_t1"   "varB_t2"  

关于围绕分隔符反转数据框名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54024481/

相关文章:

r - 仅当列存在时才执行dplyr操作

python - 如何附加到 Pandas DataFrame 中的各个列

r - 将数据框的列字符串值转换为整数

r - 用于多项回归的多重插补和 mlogit

r - mutate(across) 在 tidyverse 中生成多个新列

r - R 中用户定义函数中的公式

r - 使用 plotly 创建色带

python - 如何在特定键上合并这两个数据帧?

python - 如何计算整个 Pandas 数据集的成对互信息?

html - rvest R 抓取 - html_table() 中缺少表