Combining row names in extensive dataframe while keeping data associated with specific rows

StackOverflow https://stackoverflow.com/questions/18367784

  •  26-06-2022
  •  | 
  •  

Pergunta

I have an extensive dataframe consisting of the names of beers and their review's there are several repeats for each beer does anyone have any suggestions on how i can combine them to reduce each review set to one listing of the beer name and average of its overall reviews

ie

   {original table}
beername         overallreview
Blue moon              4
Blue moon              4
Blue moon              3
Blue moon              1
Blue moon              5
Blue moon              3


  {operation results in}
beername         overallreview
Blue moon             3.333

here is what i have tried so far

library(plyr)
library(sqldf)
# Load Packages plyr & sqldf
beerdata <- read.csv(file.choose())
#Select data from csv file 
summary(beerdata)
#Summary of data

best_beer <- beerdata[,c("reviewoverall","beername")]

refined_best <- ddply(best_beer, .(beername), function(x) {
  if(nrow(x) > 1)
    return(data.frame("beername" = unique(x$beername), "mean_ratings" =      mean(x$reviewoverall)))
})

Thusfar this code only crashes r ^^^^

Foi útil?

Solução

ddply(best_beer, .(beername), summarise,
    mean_ratings = mean(reviewoverall))

should work.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top