0

私はビールの名前で構成される広範なデータフレームを持っており、そのレビューはビールごとにいくつかの繰り返しがあります。それらを組み合わせて各レビューセットをビール名の1つのリストとその全体的なレビューの平均に減らす方法について誰か提案がありますか?

すなわち

   {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

これが私がこれまでに試したことです

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)))
})

これまでのところ、このコードはクラッシュするだけです ^^^^

4

1 に答える 1

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

動作するはずです。

于 2013-08-21T22:09:36.837 に答える