如何从R中的变量获得多个均值分数

时间:2015-09-10 06:44:11

标签: r

这是我的示例数据文件。

    Animal   Scores
1    Dogs     10
2    Dogs     11
3    Dogs     12
4    Dogs     13
5    Dogs     14
6    Dogs     15
7    Dogs     16
8    Dogs     17
9    Dogs     18
10   Dogs     19
11   Cats     20
12   Cats     21
13   Cats     22
14   Cats     23
15   Cats     24
16   Cats     25
17   Cats     26
18   Cats     27
19   Cats     28
20   Cats     29
21  Birds     30
22  Birds     31
23  Birds     32
24  Birds     33
25  Birds     34
26  Birds     35
27  Birds     36
28  Birds     37
29  Birds     38
30  Birds     39

我刚刚开始学习R并且在编码世界中是一个完全的初学者,因此我已经做了很长的路。

e.g。

>####Separate each animal out 
>dogs <- animaldata$Animal == "Dogs"
>cats <- animaldata$Animal == "Cats"
>birds <- animaldata$Animal == "Birds"

>####Get the means for each animal scores
>dogsmean <- mean(animaldata$Scores[dogs])
>catssmean <- mean(animaldata$Scores[cats])
>birdsmean <- mean(animaldata$Scores[birds])
>
>####Group all means and plot
>Finalmeans <- c(I manually type the numbers of all found means here)
>plot(finalmeans, type="o")

我想要一种有效的方法来获得狗猫和鸟类的平均分数,然后在图表上绘制每只动物的平均值。

P.S。这是我的第一篇文章! :)我猜我在这个过程中打破了大多数论坛发帖规则。我还在搞清楚。欢迎所有反馈! :)

4 个答案:

答案 0 :(得分:1)

你的帖子很好,不用担心。获得所描述结果的一种可能性在于使用let yearMonthDay: NSCalendarUnit = [NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day] 函数:

aggregate()

答案 1 :(得分:0)

如果数据框中的数据可以使用:

sapply(levels(animaldata[,1]),function(x) mean(animaldata[animaldata[,1]==x,2]))

Birds  Cats  Dogs 
 34.5  24.5  14.5 

答案 2 :(得分:0)

aggregate功能可能会对您的问题派上用场:

animaldata <- aggregate(animaldata[, 2:2], list(animaldata$Animal), mean)

> animaldata
  Group.1  x
1    Birds 34.5
2    Cats 24.5
3    Dogs 14.5

以下是该动物数据简单图的代码:

par(las=1)
plot(animaldata$Group.1, animaldata$x, xlab="Animal", ylab="Mean Score")
title("Mean Animal Scores")

答案 3 :(得分:0)

我会使用ddply包中的plyr ...

library(plyr)
ddply(animaldata, .(Animal), summarise, mean(Scores))