【问题标题】:How to display separate rows in histogram in R?如何在 R 的直方图中显示单独的行?
【发布时间】:2015-09-14 03:49:37
【问题描述】:

我有一组数据已分配给名为“data1”的变量。我知道如何通过hist(data1$RT) 制作某个列的直方图。但是在 RT 列中,有“高”、“中”和“低”、“因子”,我想为每个因子变量制作 3 个单独的直方图,但不知道该怎么做。以下是数据示例:

  Frequency Prime_type  RT
1      high      prime 450
2      high      prime 460
3       med      prime 520
4       med      prime 430
5       low      prime 450
6       low      prime 420

我可以显示hist(data1$RT),但我如何只显示 RT 的“高”或“中”因子?我已经尝试了很多东西,但仍然很难。

【问题讨论】:

  • 抱歉,我以为数据会显示在列中,看起来有点混乱。
  • 基本上,我知道如何在一些数据中选择一列并制作它的直方图,但是在列中,我想选择某个块。三个不同的行是“高”、“中”和“低”。
  • 您能否编辑您的问题,而不是添加 cmets?

标签: r histogram


【解决方案1】:

您可以通过使用ggplot2 对情节进行分面来做到这一点。首先,我们修改 df$Frequency 以使面板按顺序排列:高、中和低。然后我们创建直方图,指定中断并使用facet_wrap 将图表划分为面板。请注意,我们添加参数right = TRUE(右闭和左开区间)来计算区间,就像hist 函数一样。

library(ggplot2)
df$Frequency <- factor(df$Frequency, levels=unique(df$Frequency))
h <- ggplot(df, aes(x=RT), xlim=c(420,520)) + 
  geom_histogram(breaks=seq(420, 520, by=20), col="white", right = TRUE) +
  facet_wrap( ~ Frequency) +
  scale_x_continuous(breaks=seq(420, 520, by=20))
h

输出:

数据

df <- structure(list(Frequency = structure(c(1L, 1L, 3L, 3L, 2L, 2L
), .Label = c("high", "low", "med"), class = "factor"), Prime_type = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = "prime", class = "factor"), RT = c(450L, 
460L, 520L, 430L, 450L, 420L)), .Names = c("Frequency", "Prime_type", 
"RT"), class = "data.frame", row.names = c("1", "2", "3", "4", 
"5", "6"))

【讨论】:

    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2014-10-08
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多