【问题标题】:Count 1s in binary variables在二进制变量中计数 1
【发布时间】:2018-08-27 11:04:25
【问题描述】:

我的数据看起来像这样

Colour Q1 Q2 Q3
yellow  1  0  1 
green   0  0  1
red     1  1  1
black   0  1  0
green   1  0  1
white   0  0  1
yellow  1  1  1

我想要一个看起来像这样的表格,这样我就可以在 ggplot2 中绘制一些条形图,其中 x 轴有 3 个季度,每个季度都有每种颜色的计数。我试过table()(以及这里建议的其他人),但它给了我TRUEFALSE,这只会让我更难,因为我不知道如何处理它以便使用绘制条形图ggplot2

Colour Q1 Q2 Q3
yellow  2  1  2
red     1  1  1
green   1  0  2
white   0  0  1
black   0  1  0

【问题讨论】:

  • 你的问题有两个不相关的部分:你想用ggplot2计算变量还是绘图?
  • @PoGibas 我要数数。
  • 我投了反对票,因为这个问题由 2 个问题组成,每个问题都在 SO 上被多次回答。缺乏努力。
  • @PoGibas 哇哦。我根本没有考虑求和。谢谢!

标签: r ggplot2


【解决方案1】:

我已经搜索过,但我没有找到这个问题的确切副本。

OP 已请求:

...所以我可以在 ggplot2 中绘制一些条形图,其中 x 轴有 3 个季度,每个季度都有每种颜色的计数。

为此,聚合不是这里的关键点(ggplot2 具有处理不同统计信息的功能),而是重塑数据以形成 x 轴:单独的列 @987654324 @、Q2Q3 需要转换为一列季度数据,另外还有一个将成为 x 轴的 Quarter 列。

对于从宽格式到长格式的重塑,我们可以使用

long <- tidyr::gather(raw_data, "Quarter", "Count", -Colour)

long <- data.table::melt(raw_data, "Colour", , "Quarter", "Count")

(仅提及几个选项)。

两者都以长格式返回一个新数据集:

long
   Colour Quarter Count
1  yellow      Q1     1
2   green      Q1     0
3     red      Q1     1
4   black      Q1     0
5   green      Q1     1
6   white      Q1     0
7  yellow      Q1     1
8  yellow      Q2     0
9   green      Q2     0
10    red      Q2     1
11  black      Q2     1
12  green      Q2     0
13  white      Q2     0
14 yellow      Q2     1
15 yellow      Q3     1
16  green      Q3     1
17    red      Q3     1
18  black      Q3     0
19  green      Q3     1
20  white      Q3     1
21 yellow      Q3     1

现在,我们可以告诉ggplot()

  • 沿 x 轴放置条形的位置 (Quarter),
  • 填充条使用哪种颜色 (Colour),
  • 以及条形的高度 (Count)。

通过

library(ggplot2)
ggplot(long) + 
  aes(Quarter, Count, fill = Colour) +
  geom_col() + 
  scale_fill_identity(guide = "legend")

数据

raw_data <- data.table::fread("
Colour Q1 Q2 Q3
yellow  1  0  1 
green   0  0  1
red     1  1  1
black   0  1  0
green   1  0  1
white   0  0  1
yellow  1  1  1")

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2012-02-10
    相关资源
    最近更新 更多