【问题标题】:Tabm (Stata) Equivalent in RTabm (Stata) 等效于 R
【发布时间】:2018-07-27 14:16:01
【问题描述】:

我有几个分类变量,其值为 1-3。我想创建一个类似于 Stata 中的 tabm 功能生成的表格,它向我显示每个分类变量的观察次数。

在 Stata 中,我会简单地写:

  tabm Variable1 Variable2 Variable3

这就是表格的外观(obs=observations):

             Value=1    Value=2   Value=3
Variable1      5 obs     10 obs    12 obs
Variable2      2 obs     9 obs     0 obs
Variable3      12 obs    9 obs     3 obs

我阅读了一些关于 Cross.Table 的帖子,但我的 R 版本不接受 gmodels(R 版本 3.4.4)。

【问题讨论】:

  • tabm 不是官方的 Stata 命令。
  • 为什么不使用?table?或者也许看看这个可能会有所帮助:stackoverflow.com/questions/25721884/…
  • 寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。

标签: r stata


【解决方案1】:

假设每个变量都有每个类别值并且长度相等,我们可以使用 rbind 和 table:

x <- c(1,1,1,1,2,2,3,3)
y <- c(1,2,2,2,3,3,3,3)
z <- c(1,1,2,3,2,2,2,2)

rbind(table(x), table(y), table(z)) #gives us:

      1 2 3
 [1,] 4 2 2
 [2,] 1 3 4
 [3,] 2 5 1

【讨论】:

    【解决方案2】:

    我们可以在sapply() 中申请table()

    示例

    t(sapply(df1[, c("Variable1", "Variable2", "Variable3")], table))
    

    收益

    > t(sapply(df1[, c("Variable1", "Variable2", "Variable3")], table))
               1  2  3
    Variable1 10 17 23
    Variable2 20 14 16
    Variable3 11 19 20
    

    数据

    set.seed(42)
    df1 <- setNames(data.frame(replicate(5, sample(3, 50, replace = TRUE))), 
                    paste0("Variable", 1:5))
    

    【讨论】:

      【解决方案3】:

      tidyverse 替代与上述相同的数据:

      library(dplyr)
      library(tidyr)
      
      gather(df1, var, value) %>%
        count(var, value) %>%
        spread(value, n)
      

      屈服

      # A tibble: 5 x 4
        var         `1`   `2`   `3`
        <chr>     <int> <int> <int>
      1 Variable1    10    17    23
      2 Variable2    20    14    16
      3 Variable3    11    19    20
      4 Variable4    20    11    19
      5 Variable5    19    20    11
      

      【讨论】:

        猜你喜欢
        • 2020-08-08
        • 1970-01-01
        • 2021-09-05
        • 1970-01-01
        • 2021-04-23
        • 2019-11-04
        • 2020-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多