dplyr:如何根据模式修改列名?

时间:2016-12-13 20:19:19

标签: r dplyr tidyr

考虑这个简单的例子:

data <- data_frame('data::col1' = c(1,2,3), 'data::col2' = c(1,2,3))
> data
# A tibble: 3 × 2
  `data::col1` `data::col2`
         <dbl>        <dbl>
1            1            1
2            2            2
3            3            3

这种数据帧是使用Apache Pig获得的输出。在这里,我可以使用dplyr加载它,但正如您所看到的,列的名称很麻烦。

如何使用tidyverse套件摆脱::之前的部分?另外,假设我有许多带有data::mycol模式的列,因此理想的解决方案无需手动键入每个受影响的列。

预期输出:

# A tibble: 3 × 2
   col1  col2
  <dbl> <dbl>
1     1     1
2     2     2
3     3     3

谢谢!

1 个答案:

答案 0 :(得分:0)

library(dplyr)
library(purrr)

data <- data.frame('data::col1' = c(1,2,3), 'data::col2' = c(1,2,3))
names(data) <- names(data) %>%
  gsub("data..", "", .)