r - 如何在 R 中生成跨多列的汇总统计信息?

标签 r data.table

我有一个 [1,758 x 38] 数据框,其中每一行都是职位发布,而列是每个职位所需的技能(技能 1 到技能 38)。大多数职位发布都有许多相同的技能,只不过它们列在不同的列中。我想生成所需技能的摘要统计数据(例如,所需的最常见技能)。我可以使用 data.table 为单列生成此内容:

data[, .N, keyby = skills1] 

但是我无法实现循环机制来遍历每一列。我该怎么做?

最佳答案

您可以在base R 中使用lapply 循环遍历列来执行此操作。输出将是一个“列表”。

lapply(data, table)

或者@thelatemail提到,“宽”格式可以转换为2列的“长”格式,然后做表格

library(reshape2)
table(melt(as.matrix(data))[-1])

使用data.table的类似方法是

library(data.table)
setDT(melt(as.matrix(data))[-1])[, .N, .(Var2, value)]

或者使用mtabulate

library(qdapTools)
mtabulate(data)

关于r - 如何在 R 中生成跨多列的汇总统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316328/

相关文章:

r - 在不添加和删除的情况下更新传单提供者磁贴选项

r - 使用 lubridate 和 dplyr 过滤特定日期的数据集

r - 导出具有确切大小和字体大小的图形

r - 添加\\以使用正则表达式转义字符串中的非 UTF 8 字符

r - 基于数据帧同一行中不同列的值的累积和(避免循环)

r - 跨共享公共(public)列分配 groupid

r - 如何在另一列中创建数据标记信息列

在 R 中复制 Stata 边距

R数据.表: Dynamically Update a Different Column for each Row

r - 在 R : Send a modified windows command to fread() 中