【问题标题】:How can i find the variance in groups over a dataset [R]我如何在数据集上找到组的方差 [R]
【发布时间】:2015-08-09 11:55:10
【问题描述】:

我正在尝试查找我的数据集分组(从 AE 到 AE)的标准偏差,看起来有点像这样:

ID   Pay_ee  Pay_em Post
1    100      102   AE
1    105      112   RE
1    103      112   RE
1    106      123   RE
1    101      121   RE
1    109      143   AE
1    110      113   ME
1    115      132   RE
1    123      120   AE
1    100      120   AE
1    100      120   RE

我使用 ggplot 绘制 pay_ee 和 pay_em。现在我很难在我的 ggplot 中表示从一个 AE 到另一个 AE 的标准偏差。这意味着我必须首先计算从一个 AE 到下一个 AE 的标准偏差。然后将其绘制在我的 ggplot 中。

我试图参考这个link 答案,但问题是针对整个数据集完成的。

你知道我该怎么做吗?

【问题讨论】:

  • 您要计算Pay_eePay_em 哪个方差?
  • @DavidArenburg 对于两者。
  • 计算两者的 SD 非常容易,例如使用 the devel version from GH of data.table (v >= 1.9.5) 我们可以简单地做 library(data.table) ; setDT(df)[, lapply(.SD, sd), by = .(ID, rleid(Post == "AE"))]。你想如何绘制这是一个不同的问题。

标签: r ggplot2


【解决方案1】:

使用dplyrtidyrggplot2 会得到你想要的。

library(dplyr)
library(tidyr)
library(ggplot2)

df <- read.table(header = TRUE,
                 text = 
"ID   Pay_ee  Pay_em Post
1    100      102   AE
1    105      112   RE
1    103      112   RE
1    106      123   RE
1    101      121   RE
1    109      143   AE
1    110      113   ME
1    115      132   RE
1    123      120   AE
1    100      120   AE
1    100      120   RE")

df %>% 
  gather(key, value, starts_with("Pay_")) %>% 
  group_by(Post, key) %>%                      
  summarize(m = mean(value), 
            sd = sd(value)) %>% 
  print %>%

  ggplot(.) + 
  theme_bw() + 
  aes(x = Post, y = m, ymin = m - sd, ymax = m + sd, color = key) + 
  geom_point(position = position_dodge(width = 0.5)) + 
  geom_errorbar(position = position_dodge(width = 0.5)) + 
  ylab("Pay")

【讨论】:

    猜你喜欢
    • 2020-07-09
    • 2020-01-21
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2021-01-07
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多