假设数据框如下所示:
Name Score
1 John 10
2 John 2
3 James 5
我想计算所有具有John姓名的分数值的平均值。
答案 0 :(得分:1)
您可以使用aggregate
轻松执行每个人得分的平均值:
> aggregate(Score ~ Name, data=d, FUN=mean)
Name Score
1 James 5
2 John 6
答案 1 :(得分:0)
使用dplyr
:
对于每个名字:
library(dplyr)
df %>%
group_by(Name) %>%
summarise(Value=mean(Score))
Name Value
1 James 5
2 John 6
过滤
filter(df, Name=="John") %>%
group_by(Name) %>%
summarise(Value=mean(Score))
Name Value
1 John 6
使用sqldf
:
library(sqldf)
sqldf("SELECT Name, avg(Score) AS Score
FROM df GROUP BY Name")
Name Score
1 James 5
2 John 6
过滤
sqldf("SELECT Name, avg(Score) AS Score
FROM df
WHERE Name LIKE 'John'")
Name Score
1 John 6