示例数据框:
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
有任何建议如何做到这一点?
答案 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()