r根据另一列的平均值列出顶部值

r根据另一列的平均值列出顶部值,r,R,我从csv文件(mydata.csv)加载了数据 我想使用的两个列(mydata['name']和mydata['score'])的数据如下 name score sally 5 peter 10 sally 50 peter 25 mandy 100 mandy 0 数据集有3个以上的名称,但出于示例目的,我只给出了3个名称。我想做的是获得平均得分最高的前10名并存储这些信息 另外,如果我想在ggplot中使用x表示名称,y表示分数,将

我从csv文件(mydata.csv)加载了数据

我想使用的两个列(mydata['name']和mydata['score'])的数据如下

name     score
sally     5
peter     10
sally     50
peter     25
mandy     100
mandy     0
数据集有3个以上的名称,但出于示例目的,我只给出了3个名称。我想做的是获得平均得分最高的前10名并存储这些信息


另外,如果我想在ggplot中使用x表示名称,y表示分数,将这些点(名称、分数)绘制为图形,那么存储结果(数组、列表等)的最佳数据类型是什么。

我创建了数据框,并将自己限制为2个平均分数最高的名称,而不是原来的10个,因为数据限制:

  df<-data.frame(name =c('sally','peter','sally','peter','mandy','mandy'),score=c(5,10,50,25,100,0))

 library("dplyr")
  FinalOutput <- df %>%
  group_by(name) %>% #group by name
  summarise(avg_score=mean(score)) %>% #create variabele "avg_score" which hold the mean of scores for each name
  top_n(2) %>% #select the top 2, you can change it to 10 with your real data 
  arrange(desc(avg_score)) #arrange in a descending fashion to get the names with highest avg_score 
下面是它的示意图:

 print(ggplot(data = FinalOutput, aes(x = name, y = avg_score))+ geom_point())

我创建了dataframe,由于数据限制,我将自己限制为2个平均得分最高的名字,而不是原来的10个:

  df<-data.frame(name =c('sally','peter','sally','peter','mandy','mandy'),score=c(5,10,50,25,100,0))

 library("dplyr")
  FinalOutput <- df %>%
  group_by(name) %>% #group by name
  summarise(avg_score=mean(score)) %>% #create variabele "avg_score" which hold the mean of scores for each name
  top_n(2) %>% #select the top 2, you can change it to 10 with your real data 
  arrange(desc(avg_score)) #arrange in a descending fashion to get the names with highest avg_score 
下面是它的示意图:

 print(ggplot(data = FinalOutput, aes(x = name, y = avg_score))+ geom_point())
 print(ggplot(data = FinalOutput, aes(x = name, y = avg_score))+ geom_point())