使用R tidyverse将条件平均值保存为对象
我试图计算一个连续变量的平均值,如果对应的二进制变量是1。我曾经使用R tidyverse将条件平均值保存为对象,r,dplyr,tidyverse,mean,R,Dplyr,Tidyverse,Mean,我试图计算一个连续变量的平均值,如果对应的二进制变量是1。我曾经 dataset %>% group_by(binary) %>% summarise(continuos_mean = mean(continuous, na.rm = TRUE)) 但这给了我一个tibble,而不是一个值/我无法保存为对象的平均值。如何获得一个值?您可以尝试: dataset <- data.frame(binary = c(1, 0, 1, 0), continuo
dataset %>%
group_by(binary) %>%
summarise(continuos_mean = mean(continuous, na.rm = TRUE))
但这给了我一个tibble,而不是一个值/我无法保存为对象的平均值。如何获得一个值?您可以尝试:
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
filter
forbinary==1
后跟pull
应该可以得到一个值
dataset %>%
group_by(binary) %>%
summarise(continuos_mean = mean(continuous, na.rm = TRUE)) %>%
filter(binary == 1) %>%
pull(continuos_mean)
你能添加一些示例数据并检查你的代码示例吗?我不知道为什么你会有
dataset%%>%`dataset%%>%
仅供参考-它看起来像continuos\u意思是可能是一个打字错误。这是否应该是连续的?我在以后的分析过程中经常遇到类似这样的问题
dataset %>%
group_by(binary) %>%
summarise(continuos_mean = mean(continuous, na.rm = TRUE)) %>%
filter(binary == 1) %>%
pull(continuos_mean)