我的数据范围为 10,000 点,如下所示:
data = rbinom(10000, size=10, prob=1/4)
我需要找到数据 values >=5
的 mean 和 standard deviation。
大约有 766 个 values :
sum(data >=5)
sum
(或我能想到的任何其他方法)产生一个 TRUE/FALSE
并且不能在 mean
或 sd
计算中使用。我如何划分实际的 values?!
回答1
如果你想得到 data
的所有 values 大于或等于 5,而不仅仅是一个逻辑向量告诉你 data
的 values 是否大于或等于 5,你需要做 data[data >= 5]
。
所以我们可以这样做:
data = rbinom(10000, size=10, prob=1/4)
mean(data[data >= 5])
#> [1] 5.298153
sd(data[data >= 5])
#> [1] 0.5567141
回答2
也许试试这个:
library(dplyr)
data %>%
as.data.frame() %>%
filter(. >= 5) %>%
summarise(mean = mean(.),
sd = sd(.))
输出:
mean sd
1 5.297092 0.5815554
数据
data = rbinom(10000, size=10, prob=1/4)
回答3
TRUE
和 FALSE
values 可用于 mean()
、sum()
、sd()
等...因为它们分别具有数字 values 0 和 1。
set.seed(456)
data = rbinom(10000, size=10, prob=1/4)
mean(data >= 5)
#> [1] 0.0779
sum(data >= 5)
#> [1] 779
sd(data >= 5)
#> [1] 0.2680276
由 https://reprex.tidyverse.org (v2.0.1) 于 2022 年 5 月 14 日创建