R 计算数据帧中数字的频率

R 计算数据帧中数字的频率,r,R,我有一个关于电影收视率(1-10)的大数据集,我想知道收视率的分布情况。我在数据集中也有0,但实际上它们是NAs,但我需要它们作为0用于项目的后期(尝试构建推荐系统) 样本数据 User.ID 60392452 60502258 60915544 60928336 60930535 60934417 60938455 60959037 60976845 1 26 0 0 0 0 0 0 0 0 0 2 51 0 0 0 0 0 0

我有一个关于电影收视率(1-10)的大数据集,我想知道收视率的分布情况。我在数据集中也有0,但实际上它们是NAs,但我需要它们作为0用于项目的后期(尝试构建推荐系统)

样本数据

User.ID 60392452 60502258 60915544 60928336 60930535 60934417 60938455 60959037 60976845
1   26  0   0   0   0   0   0   0   0   0
2   51  0   0   0   0   0   0   0   0   0
3   91  0   0   0   0   0   0   0   0   0
4   99  0   0   0   0   0   0   0   0   0
5   114 0   0   0   0   0   0   0   0   0
6   125 0   0   0   0   0   0   0   0   0
7   165 0   0   0   0   0   0   0   0   9
8243001000

好的,它不是那么可读,但用户ID列是“26”、“51”等。电影由代码表示,是“60392452”等,是列标题

首先,我使用了以下代码:

表格(mod_数据集)

但我收到一条错误信息:

表中的错误(mod_数据集): 尝试创建包含>=2^31个元素的表


“大数据”表的等价物是什么

我真的不确定这是否回答了你的问题,但这是一种逐列列出评级的方法

res <- sapply(mod_dataset[-1], function(x) table(factor(x, levels = 0:10)))
inx <- apply(res, 1, function(x) all(x == 0))
res[!inx, ]

请将您的样本数据集与输出样本一起发布,如果没有,则不清楚。您的数据中可能没有2^31个实际元素-这将是很多电影收视率。我可能会建议寻找导致出现如此多元素的原因……这是调试的起点。@andrew_reece:我猜的可能都是零(这确实意味着他们没有看电影),所以现在将保留为NA。@TheStatistican魔术师,当然,你只需要抽取几行与你的实际数据接近的数据,抽取几行预期数据,就可以清楚地描述你的问题。你想要的输出是什么?从这个问题上看不是很清楚吗?
mod_dataset <-
structure(list(User.ID = c(26L, 51L, 91L, 99L, 114L, 125L, 165L, 
243L), X60392452 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X60502258 = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L), X60915544 = c(0L, 0L, 0L, 0L, 0L, 
0L, 0L, 10L), X60928336 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
    X60930535 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X60934417 = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L), X60938455 = c(0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L), X60959037 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L), X60976845 = c(0L, 0L, 0L, 0L, 0L, 0L, 9L, 0L)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8"))