迭代R中的因子并提取信息

时间:2015-01-07 01:45:36

标签: r ggplot2 dataframe

我有一个数据框,第一列包含我已经考虑过的数字ID列表。第二列包含每个ID的数字评级(1-10之间),每个ID可能在数据框中出现多次,因为它可能有多个评级。 我想迭代ID并创建一个直方图(或类似的),显示每个ID的评级分布。然后将每个图打印到相同的pdf文件。

到目前为止我的代码:

pdf("Dist_Ratings_per_Movie_plots.pdf")
for (i in levels(movieRatings$MovieID)){
 var <- movieRatings$i[movieRatings$Rating]
 qplot(var, data = movieRatings, geom = "bar")
}
dev.off()

注意:这会产生一个没有写入任何内容的pdf文件。

Example of movieRatings:
MovieID   Rating
1234      6 
1235      8
1234      7
1236      9

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

尝试在for循环中使用子集来获取MovieID。此外,ggplot语句需要在每个先前线程的打印函数调用内(例如Can't print to pdf ggplot charts)。

pdf("Dist_Ratings_per_Movie_plots.pdf")
for (i in levels(movieRatings$MovieID)) {
  + print(ggplot(subset(movieRatings, subset=MovieID == i), aes(Rating)) + geom_bar()) 
}
dev.off()

你可以用qplot做同样的事情,但我喜欢ggplot允许的附加控件。