【问题标题】:Using mtcars data to make a summarised table of cylinders versus centered(mpg)使用 mtcars 数据制作圆柱与居中的汇总表(mpg)
【发布时间】:2021-04-17 18:33:43
【问题描述】:

与我同在...我正在使用 R/RStudio 与数据 mtcarsdplyrmutate strong> 和 summarise 命令。还尝试了group by

我想将值居中 mtcars$mpg 然后获取该信息并显示 汽缸数与居中 mtcars$mpg 的摘要。

到目前为止...

mtcars %>% mutate(centered_mpg = mpg - mean(mpg, na.rm = TRUE)) %>% summarise(centered_mpg, cyl)

以上产生:

centered_mpg cyl
0.909375 6
0.909375 6
2.709375 4
1.309375 6
... ...

相反,我想要:

centered_mpg cyl
x1 4
x2 6
x3 8

【问题讨论】:

  • 您想如何汇总每组汽车的居中mpg(对于每个cyl 值)?你想要以 cyl 为中心的平均 mpg 吗?或者中位数,总和,或者别的什么?我想像mtcars %>% mutate(centered_mpg = mpg - mean(mpg, na.rm = TRUE)) %>% group_by(cyl) %>% summarise(mean_centered_mpg = mean(centered_mpg)) 这样的东西,但是把summarize() 里面的mean() 换成你想要的任何功能。
  • 我想这就是票。

标签: r dplyr summarize


【解决方案1】:

你在找这个吗?

with(mtcars, aggregate(list(centered_mpg=scale(mpg, scale=FALSE)), list(cyl=cyl), mean))
#   cyl centered_mpg
# 1   4    6.5730114
# 2   6   -0.3477679
# 3   8   -4.9906250

【讨论】:

  • 我相信 OP 想要scale(mpg, scale = FALSE)
【解决方案2】:

您似乎想通过减去全局 mean(mpg) 来使每辆汽车的 mpg 居中。这会为每辆车提供一个centered_mpg - 您拥有的代码看起来很好。

然后您想按柱面组计算居中 mpg 值的某种“汇总”,因此我们需要 group_by(cyl) 然后定义您想要的任何汇总函数 - 这里我使用 mean() 但您可以使用 @ 987654326@、sum 或其他任何您想要的。

mtcars %>% 
  mutate(centered_mpg = mpg - mean(mpg, na.rm = TRUE)) %>% 
  group_by(cyl) %>% 
  summarise(mean_centered_mpg = mean(centered_mpg))
# # A tibble: 3 x 2
#     cyl mean_centered_mpg
#   <dbl>             <dbl>
# 1     4             6.57 
# 2     6            -0.348
# 3     8            -4.99 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多