计算R中均值的不同方法

计算R中均值的不同方法,r,R,我试图使用一些限制来计算数据帧列的平均值,所以首先我做了: mean(Ykkonen$deltaA[Ykkonen$PH<=2.5], na.rm = TRUE) 然而,deltaA是数字的。因此,我试图理解为什么使用试管有什么不同 我的意思是,如果我通过键入dataframe%>%filter(a=='s')正确理解它,那么它应该只返回变量a具有s的条目,对吗?您需要使用摘要函数来获得所需的结果 Ykkonen %>% filter(PH<=2.5) %>% summ

我试图使用一些限制来计算数据帧列的平均值,所以首先我做了:

mean(Ykkonen$deltaA[Ykkonen$PH<=2.5], na.rm = TRUE)
然而,
deltaA
是数字的。因此,我试图理解为什么使用试管有什么不同


我的意思是,如果我通过键入
dataframe%>%filter(a=='s')
正确理解它,那么它应该只返回变量
a
具有
s
的条目,对吗?

您需要使用摘要函数来获得所需的结果

Ykkonen %>% filter(PH<=2.5) %>% summarise(mean = mean(deltaA, na.rm = TRUE)

并且data.frame将无法通过此测试。

如果要返回一个值作为数字向量(长度为1),可以使用
pull

Ykkonen %>% filter(PH<=2.5) %>% pull(deltaA) %>% mean(na.rm = TRUE)
为了确保目标是数字的,您还可以使用
summary\u,如果类似于:

mtcars %>% filter(qsec >= 17) %>% summarize_if(is.numeric, mean) %>% pull(drat)
请试着想出一个解决办法。这样,可以更好地帮助你。
if (!is.numeric(x) && !is.complex(x) && !is.logical(x)) {
warning("argument is not numeric or logical: returning NA") 
Ykkonen %>% filter(PH<=2.5) %>% pull(deltaA) %>% mean(na.rm = TRUE)
library(dplyr)

mtcars %>% filter(qsec >= 17) %>% pull(drat) %>% mean(na.rm = TRUE)
# [1] 3.561304
mtcars %>% filter(qsec >= 17) %>% summarize_if(is.numeric, mean) %>% pull(drat)