首页 > 解决方案 > 同一列变量之间的相关性

问题描述

我有一个数据框 df。挑战在于分类变量在同一列中,而值在另一列中。我需要在不转换数据集的情况下绘制相关性。这里是

   df
   Date             B      C
   2019-09-09     Cat1     2
   2019-09-10     Cat1     3
   2019-09-11     Cat1     5
   2019-09-09     Cat2     7
   2019-09-10     Cat2     9
   2019-09-11     Cat2     10  

如果您仔细观察,我需要绘制 Cat1 和 Cat2 之间的相关性,以获得 C 列中的值与日期之间的关系。有办法吗?2 列中的类别可能超过 2。但是如果变量在同一列中,我们如何绘制它?

假设我们有如下数据框 df 。在这很容易绘制

   df
   Date               Cat1   Cat2
   2019-09-09          2        7
   2019-09-10          3        9 
   2019-09-11          5        10

在这种情况下,我们可以使用下面的代码

  ggplot(df, aes(x=Cat1, y=Cat2))+geom_point()

标签: r

解决方案


tidyr使用包应该很容易。见下文:

library(tidyr)

df <- data.frame(Date = c("2019-09-09","2019-09-10","2019-09-11","2019-09-09","2019-09-10","2019-09-11"),
                         B = c(rep("Cat1",3),rep("Cat2",3)),
                         C = c(2,3,5,7,9,10))

df.tidy <- spread(df, key = B, value = C)

df.tidy

#           Date Cat1 Cat2
#   1 2019-09-09    2    7
#   2 2019-09-10    3    9
#   3 2019-09-11    5   10

推荐阅读