按组绘制不同的变量

时间:2018-08-02 09:19:33

标签: r ggplot2

我有这个数据框

ddf <-data.frame(Class=c(rep("pat",times=4),rep("stm",times=4), rep("nst",times=4)),
          Ion= c(rep("pos", times=12), rep("neg", times=12)),
   M1 =runif(24, 5.0, 7.5), M2 =runif(24, 5.0, 7.5), M3 =runif(24, 5.0, 7.5))

对于每个变量M1 M2 M3,我想用IonPos NegClass颜色进行关联,并得到相关系数。

我融化了

library(reshape2)
mm <- melt(ddf, id=c('Class', "Ion"))

这是为了将facet_wrap用于每个变量M1的相关图,依此类推。我不确定如何继续进行

1 个答案:

答案 0 :(得分:1)

您可以像这样绘制数据

library(tidyverse)
df %>% 
  group_by(Ion) %>%
   mutate(n=1:n()) %>% 
  gather(k, v, -Class, -Ion, -n) %>% 
  spread(Ion,v) %>% 
  ggplot(aes(neg, pos, color=Class)) + 
   geom_point() + 
   facet_grid(~k)

和相关系数

df %>% 
  group_by(Ion) %>%
  mutate(n=1:n()) %>% 
  gather(k, v, -Class, -Ion, -n) %>% 
  spread(Ion,v) %>% 
  split(.$k) %>% 
  map(~cor(.$neg, .$pos))
$M1
[1] -0.01189842

$M2
[1] -0.02646084

$M3
[1] -0.0160802