在结果中拆分文件ANOVA

时间:2018-07-17 16:51:30

标签: r split lapply anova

我是R的新手,正在尝试使用带拆分文件选项的单向方差分析(类似于SPSS)。数据集文件称为rdatasetnew。感兴趣的三个变量是:

orderNo:人物标识符
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

1 个答案:

答案 0 :(得分:0)

dplyr软件包是一个很好的选择。

library(dplyr)
df1<- df %>%
group_by(orderNo) %>%
summarize(mean_rating = mean(rating), count = n())

输出采用每个订单号的平均等级以及总计数。您还可以通过将orderNo替换为design来快速设计表格进行分组。

如果您想为每种订单/设计组合提供均值和计数,可以通过在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           1