【发布时间】:2018-10-11 17:51:59
【问题描述】:
在 R 中 - 尝试遍历列名列表,按特定条目过滤并计算该条目的出现次数。我正在尝试在 for 循环中的管道中运行类似下面的内容来执行此操作 - 但除非我用 questionNumbers[i] 替换直接列名,否则我无法让下面的内容工作。
df %>%
nrow(filter(questionNumbers[i] == Response[1])) %>%
....etc
有什么想法吗?我觉得有一种apply() 的方法可以做到这一点 - 想法?
【问题讨论】:
-
您的直觉是正确的,
apply家族函数会起作用。lapply(df, function(x) sum(x == df$Response[1]))会告诉你每列中有多少元素等于df$Response[1] -
@RyanD - 谢谢 - 我的挂断尝试只针对特定列执行此操作......我如何增加 apply() 来做到这一点?
-
您可以将
df替换为df[, c('column1', 'column2')],其中'column1'和'column2'是您要检查的列的名称。所以lapply(df[, column_name_vector], function(x) sum(x == df$Response[1])) -
如果您添加一个可重现的示例,或者使用您自己的部分数据,或者向我们展示此计算在示例数据集上的样子,这可能会有所帮助