【问题标题】:creating 2x2 table in R with the values of cells being a 3rd variable, not a count在 R 中创建 2x2 表,其中单元格的值是第三个变量,而不是计数
【发布时间】:2020-01-28 19:12:08
【问题描述】:

我想从更大的数据集在 R 中创建一个表。该表将是 2x2,但是每个单元格中的值将是数据集中已经存在的第三个变量的值。具体来说,我正在按年份查看一类药物的处方数量。因此,表格的一侧将是药物类别(A 或 B),另一年(2014-2018 年),每个单元格将代表处方数。

在数据集中,每一行都包含给定年份的给定药物的统计数据。每行不是一个单独的处方/患者。有一个处方数列。每个。所有的汇总函数都在给我计数,这不是我想要的。

最后我想用卡方检验来比较每个药物类别中患者的比例。

【问题讨论】:

  • 没有样本数据和期望的输出,很难做任何超出一般性的事情。
  • 我不能在数字方面提供任何太具体的东西,但有一个代表性的例子:在更大的数据集中——一列是分类的。利尿剂:“是”和“否”取决于药物是否是利尿剂。另一列是另一个“int”变量,年份:2014 年、2015 年、2016 年、2017 年和 2018 年。第三列是医疗补助受益人,是基于该年/班级的人数的数字。所需表格:每年内每个类别(利尿剂“否”和“是”)的受益人数量(和百分比)。我将使用此表进行卡方检验以测试年份之间的比例。
  • 阅读xtabs() 的手册页。它采用Freq~Rows+Cols 形式的公式。
  • chisq.test 函数将接受xtabs 的输出。

标签: r


【解决方案1】:

补一些数据:

set.seed(42)
Diuretic <- sample(c("yes", "no"), 100, replace=TRUE)
Year <- sample(c(2014, 2015, 2016), 100, replace=TRUE)
Beneficiaries <- round(rnorm(100, 35, 5))
dta <- data.frame(Diuretic, Year, Beneficiaries)

现在使用xtabs:

(dta.tbl <- xtabs(Beneficiaries~Diuretic+Year, dta)
#         Year
# Diuretic 2014 2015 2016
#      no   741  888  295
#      yes  448  649  429

加总:

addmargins(dta.tbl)
#         Year
# Diuretic 2014 2015 2016  Sum
#      no   741  888  295 1924
#      yes  448  649  429 1526
#      Sum 1189 1537  724 3450

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多