R 计算数据帧中数字的频率
我有一个关于电影收视率(1-10)的大数据集,我想知道收视率的分布情况。我在数据集中也有0,但实际上它们是NAs,但我需要它们作为0用于项目的后期(尝试构建推荐系统) 样本数据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
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"))