这是我的示例数据文件。
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。这是我的第一篇文章! :)我猜我在这个过程中打破了大多数论坛发帖规则。我还在搞清楚。欢迎所有反馈! :)
答案 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))