通过拆分其名称并在之后熔化数据帧来重命名数据框列

时间:2017-10-31 10:37:02

标签: r ggplot2 rename

示例数据框:

       col_1  col_2  col_3  col_4
f1     0.1    0.2    0.3    0.4
f2     0.01   0.02   0.03  0.04
f3     0.001  0.002  0.003 0.004

我想通过将其名称与sep="_"分开来重命名列,以获取此内容:

       1      2      3      4
f1     0.1    0.2    0.3    0.4
f2     0.01   0.02   0.03   0.04
f3     0.001  0.002  0.003  0.004

然后我想在同一个图上绘制每列的密度(f.name vs f.value)(例如:http://ggplot2.tidyverse.org/reference/geom_freqpoly-11.png)所以我想我需要把它融化成像这样:

col   f.name    f.value    
1     f1        0.1
2     f1        0.2
3     f1        0.3
4     f1        0.4
1     f2        0.01
2     f2        0.02
3     f2        0.03
4     f2        0.04
1     f3        0.001
2     f3        0.002
3     f3        0.003
4     f3        0.004

有任何建议如何做到这一点?

1 个答案:

答案 0 :(得分:1)

不测试代码,使用包'dplyr'和'tidyr'。如果df是您的输入数据框,则以下内容应该有效:

df %>% gather(col, val, starts_with('col')) %>% 
  separate(col, into=c('nah','col'), sep='_') %>%
  ggplot(aes(x=val, colour=col)) + geom_freqpoly()