根据条件咆哮创建排名分布

时间:2018-02-03 15:59:10

标签: r

我想问你的帮助,我需要计算喜欢电影“宝贝”(评级为4或5星)的人更好评的电影,然后提供他们最喜欢的前5部电影。

我的失败尝试看起来像这样

这是为了在第一时间找到喜欢Babe的用户,所以它只是问题的一部分,但是它不起作用

for(i in 1:length(datababe)){
  if(datababe[i] >= 4){
    print(datababe$User[i])
  }
}

请帮帮我

enter image description here

1 个答案:

答案 0 :(得分:-1)

您的功能一次应用于一个等级,因此等级> = 4的总和始终为1或0.结果将为0.25或0.20。不是你想要的。

我创建了一些假数据如下:

data <- data.frame(users=sample(LETTERS, 50, replace=T),
               movie=sample(letters, 50, replace=T),
               rating=sample(1:5, 50, replace=T),stringsAsFactors=F)

使用dplyr包过滤掉您想要的内容,如下所示:

x<-data %>% 
    filter(rating>=4) %>%  # ratings you want
    group_by(rating) %>%   # grouped by the rating
    summarize(pct.4_5=n()/sum(data$rating)*100) # calculation; n() does counting

生成的tibble将如下所示:

# A tibble: 2 x 2
  rating pct.4_5
   <int>   <dbl>
1      4    5.19
2      5    8.44