【问题标题】:Using R tidyverse to save conditional mean mean as an object使用 R tidyverse 将条件均值均值保存为对象
【发布时间】:2021-05-21 00:46:58
【问题描述】:

如果相应的二进制变量为 1,我正在尝试计算连续变量的平均值。我使用了

  dataset %>% 
    group_by(binary) %>% 
    summarise(continuos_mean = mean(continuous, na.rm = TRUE))

但这给了我一个 tibble 而不是一个值/意味着我不能保存为一个对象。如何获得一个值?

【问题讨论】:

  • 您能否添加一些示例数据并检查您的代码示例,我不确定您为什么会有dataset %>% `dataset %>%
  • 仅供参考 - 看起来 continuos_mean 可能是一个错字。这应该是continuous_mean 吗?我后来在分析管道中遇到了类似的问题很多

标签: r dplyr tidyverse mean


【解决方案1】:

filter for binary == 1 后跟 pull 应该让你得到一个单一的价值。

dataset %>% 
  group_by(binary) %>% 
  summarise(continuos_mean = mean(continuous, na.rm = TRUE)) %>%
  filter(binary == 1) %>%
  pull(continuos_mean)

【讨论】:

    【解决方案2】:

    你可以试试:

    dataset <- data.frame(binary = c(1, 0, 1, 0), continuous = c(1.2, 2.3, 3.4, 3.2))
    dataset
    
    #  binary continuous
    #1      1        1.2
    #2      0        2.3
    #3      1        3.4
    #4      0        3.2
    
    result <- mean(dataset$continuous[dataset$binary == 1], na.rm = TRUE)
    #[1] 2.3
    

    如果您想要tidyverse 方法,您可以使用其中任何一种。

    library(dplyr)
    
    dataset %>%
      filter(binary == 1) %>%
      summarise(continuos_mean = mean(continuous, na.rm = TRUE))
    
    #OR
    
    dataset %>%
      summarise(continuos_mean = mean(continuous[binary == 1], na.rm = TRUE))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-19
      • 2018-08-04
      • 2020-03-02
      • 2018-11-17
      • 2021-06-23
      • 2023-03-24
      • 2020-10-12
      • 2018-11-24
      相关资源
      最近更新 更多