我想问你的帮助,我需要计算喜欢电影“宝贝”(评级为4或5星)的人更好评的电影,然后提供他们最喜欢的前5部电影。
我的失败尝试看起来像这样
这是为了在第一时间找到喜欢Babe的用户,所以它只是问题的一部分,但是它不起作用
for(i in 1:length(datababe)){
if(datababe[i] >= 4){
print(datababe$User[i])
}
}
请帮帮我
答案 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