来自 plyr 包的分类变量的平均值
Mean of categorical variables from plyr package
我的分类变量风险包含三组:
ADV、HHM 和 POV
我想得到这三个组的四个连续变量 read.5
、read.6
、read.7
和 read.8
的平均值,它们是 5 至 5 年级以上个人的阅读分数8
这是我的数据集的 ,2:5
,它是一个旧的教科书示例。我使用了下面的代码,尽管根据 texbook 示例它应该是正确的,但它显然是不正确的:
myrisk <- ddply(.data = MPLS[ ,2:5], .variables = .(MPLS$risk),
.fun = mean, na.rm = TRUE)
我在之前的一段代码中收到一条错误消息:
mymeans <- mean(MPLS[ ,2:5], na.rm = TRUE)
当我用谷歌搜索时,R 软件已经改变,我不得不找到另一个来解决这个问题。
我的问题是:
我目前尝试使用的 ddply 函数是否已从 plyr 包中以与旧 mean 函数相同的方式被取代?
如何从四列中获取分类变量的平均值?功能相同还是不同?
谢谢
您好,您可以使用 dplyr - 它是最新的。
df<-data.frame(risk= rep(c("ADV","HHM","POV"),10),
read.5= rnorm(30,30),
read.4= rnorm(30,30),
read.3= rnorm(30,30),
read.2= rnorm(30,30))
> head(df)
# risk read.5 read.4 read.3 read.2
#1 ADV 30.78281 30.00721 29.80906 29.25936
#2 HHM 29.76175 29.63864 29.39256 29.40070
#3 POV 29.00964 30.48258 29.20662 28.77509
#4 ADV 29.60631 30.35032 32.00376 30.70374
#5 HHM 31.38653 30.28896 29.48756 30.32430
#6 POV 30.33102 30.40897 29.55796 30.10585
library(dplyr)
df %>% group_by(risk) %>% summarise_all(mean)
# A tibble: 3 x 5
# risk read.5 read.4 read.3 read.2
# <fct> <dbl> <dbl> <dbl> <dbl>
1 ADV 30.3 30.2 30.2 30.4
2 HHM 29.7 30.5 29.8 29.9
3 POV 29.3 30.2 29.9 30.2
我的分类变量风险包含三组: ADV、HHM 和 POV
我想得到这三个组的四个连续变量 read.5
、read.6
、read.7
和 read.8
的平均值,它们是 5 至 5 年级以上个人的阅读分数8
这是我的数据集的 ,2:5
,它是一个旧的教科书示例。我使用了下面的代码,尽管根据 texbook 示例它应该是正确的,但它显然是不正确的:
myrisk <- ddply(.data = MPLS[ ,2:5], .variables = .(MPLS$risk),
.fun = mean, na.rm = TRUE)
我在之前的一段代码中收到一条错误消息:
mymeans <- mean(MPLS[ ,2:5], na.rm = TRUE)
当我用谷歌搜索时,R 软件已经改变,我不得不找到另一个来解决这个问题。
我的问题是:
我目前尝试使用的 ddply 函数是否已从 plyr 包中以与旧 mean 函数相同的方式被取代?
如何从四列中获取分类变量的平均值?功能相同还是不同?
谢谢
您好,您可以使用 dplyr - 它是最新的。
df<-data.frame(risk= rep(c("ADV","HHM","POV"),10),
read.5= rnorm(30,30),
read.4= rnorm(30,30),
read.3= rnorm(30,30),
read.2= rnorm(30,30))
> head(df)
# risk read.5 read.4 read.3 read.2
#1 ADV 30.78281 30.00721 29.80906 29.25936
#2 HHM 29.76175 29.63864 29.39256 29.40070
#3 POV 29.00964 30.48258 29.20662 28.77509
#4 ADV 29.60631 30.35032 32.00376 30.70374
#5 HHM 31.38653 30.28896 29.48756 30.32430
#6 POV 30.33102 30.40897 29.55796 30.10585
library(dplyr)
df %>% group_by(risk) %>% summarise_all(mean)
# A tibble: 3 x 5
# risk read.5 read.4 read.3 read.2
# <fct> <dbl> <dbl> <dbl> <dbl>
1 ADV 30.3 30.2 30.2 30.4
2 HHM 29.7 30.5 29.8 29.9
3 POV 29.3 30.2 29.9 30.2