我是R的新手,正在尝试运行带有分割文件选项的单向方差分析(类似于SPSS)。数据集文件名为rdatasetnew。感兴趣的三个变量是:
orderNo:person标识符
rating:每个订单的满意度评分
design:使用的网站设计
拆分文件由orderNo完成,如下面的数据集中所示。我使用这个问答来开发我的拆分文件语法(Perform an ANOVA for each individual level of a factor in R)
我开发的语法如下所示:
lapply(split(rdatasetnew, rdatasetnew$orderNo), aov,
formula = rating ~ design)上面的脚本提供了每个人的平方和、自由度和残差标准差。但是,我希望获得一个汇总表和每个人的平均数据。我如何做到这一点呢?
orderNo rating design
1123 1 Traditional Modern
1123 8 Traditional Modern
1123 1 Modern
1123 9 Modern
1123 8 Modern
1124 1 Modern
1124 10 Traditional Modern
1124 3 Traditional Modern
1124 10 Traditional
1124 8 Modern Extreme
1124 10 Traditional Modern
1168 6 Traditional Modern
1168 2 Traditional Modern
1168 10 Traditional Modern
1168 5 Modern
1168 8 Traditional Modern
1168 7 Traditional Modern
1168 2 Traditional Modern发布于 2018-07-18 02:09:21
dplyr包在这里是一个很好的选择。
library(dplyr)
df1<- df %>%
group_by(orderNo) %>%
summarize(mean_rating = mean(rating), count = n())输出采用每个订单号的平均评级和总计数。您还可以通过用design替换orderNo来快速创建一个按设计分组的表。
如果您想为每个订单/设计组合提供方法和计数,可以通过向group_by语句添加多个变量来实现,如下所示
df1<- df %>%
group_by(orderNo, design) %>%
summarize(mean_rating = mean(rating), count = n())这将产生类似如下的输出:
orderNo design mean_rating count
1123 Modern 6.00 3
1123 Traditional Modern 4.50 2
1124 Modern 1.00 1
1124 Modern Extreme 8.00 1https://stackoverflow.com/questions/51386637
复制相似问题