【问题标题】:Get 'frequency table' of many columns with R repetitive coding使用 R 重复编码获取多列的“频率表”
【发布时间】:2016-01-12 20:49:35
【问题描述】:

我有一个名为“test”的数据集(data.frame),有 52 个列(预测变量),分别命名为 T1、T2、T3、T4、T5、T6、......T50。

我想提取每列的频率表。

我知道它有一个名为“freq”的函数。

那么,如何在没有手动 52 次编码的情况下获得 50 个频率表。

如果您有任何想法,请发表评论。谢谢你。

【问题讨论】:

    标签: r statistics frequency


    【解决方案1】:

    我们可以循环使用lapply 并应用table 来获取每列的频率计数

    lapply(test, table)
    

    我们还可以将列转换为factor,将levels指定为数据集中的unique元素,然后应用table,这样list元素就可以是rbind来创建一个data.framematrix(通过不删除未使用的级别来保持 list 元素的 length 相同)

    Un1 <- sort(unique(unlist(test)))
    do.call(rbind, lapply(test, function(x) table(factor(x, levels=Un1))))
    

    或者另一个选项是mtabulate

    library(qdapTools)
    mtabulate(test)
    

    数据

    set.seed(24)
    test <- as.data.frame(matrix(sample(1:8, 8*50, replace=TRUE),
       ncol=50, dimnames=list(NULL, paste0("T", 1:50))) )
    

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多