【问题标题】:Calculate column mean on single column in a database计算数据库中单列的列均值
【发布时间】:2021-05-25 20:35:43
【问题描述】:

我正在尝试从数据库中提取前 50 个观察值,然后获取每列的平均值。我正在尝试使用以下代码,但无法正常工作。

h_1_ctrl_mean <- data_1_ctrl %>% 
  slice_sample(n = 50) %>% 
  mutate(cummean(c(1, 2, 3, 4)))

我对 dplyr 很幼稚,我相信有一种更简单的方法可以做到这一点。有人可以帮我吗? 谢谢!

【问题讨论】:

  • 基础R:mean(c(1,2,3,4))colMeans( matrix(c(1,2,3,4), 4, 4) )

标签: r time-series mean


【解决方案1】:

从 db 中提取前 50 个观察结果

为此使用slice(1:50)slice_sample 用于随机行样本。

获取每列的平均值

使用mean() 表示平均值 - cummean 是累积平均值(第 1 次的平均值、第 1 次和第 2 次的平均值、第 1 次和第 2 次和第 3 次的平均值等)。并且我们使用mutate 来保持相同的行数;听起来您想将数据折叠或“汇总”为一行(具有平均值),因此我们使用summarize(),而不是mutate()。对于“所有列”,我们在其中使用across(everything(), ...)

把它放在一起:

your_data %>%
  slice(1:50) %>%
  summarize(across(everything(), mean))

【讨论】:

  • 感谢您的解释!我投了这个作为答案,但前面的评论说的一样,但在这种情况下是美丽的解释!谢谢!
【解决方案2】:

这应该可行:

h_1_ctrl_mean <- data_1_ctrl %>% 
  slice(1:50) %>% 
  summarize(across(everything(), mean))

如果我们使用mtcars:

mtcars %>% 
  summarize(across(everything(), mean))

给我们:

       mpg    cyl     disp       hp     drat      wt     qsec     vs      am   gear   carb
1 20.09062 6.1875 230.7219 146.6875 3.596563 3.21725 17.84875 0.4375 0.40625 3.6875 2.8125

【讨论】:

    【解决方案3】:

    尝试使用dplyr 包中的summarise_allslice

    data_1_ctrl %>%
       slice(1:50) %>%
       summarise_all(mean)  
    

    【讨论】:

    • summarise_all 已被取代
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多