【问题标题】:Proper proportion table and chisq.test() in RR中的正确比例表和chisq.test()
【发布时间】:2019-04-26 07:22:51
【问题描述】:

我对 R(Mac 上的版本 1.1.383)还是很陌生,所以如果这个问题是基本的,我深表歉意。我在互联网和此页面上搜索了解决方案,但找不到任何解决方案。

我要做的是做一个比例表,我可以在上面使用chisq.test()来测试4个患者组在5种不同情况下的患者比例分布是否存在差异。

我拥有的数据包含患有疾病(CHF、DM、S、MI 和 CHF)的患者百分比和患者组(绿色、黄色、橙色和红色)。 4组分别有238、196、158和20例患者,部分患者可能有不止一种情况。因此,我使用比例而不是实际的患者人数。

像这样:

condition <- c("CHF", "DM", "S", "MI", "CHF")
green <- c(30,33,35,17,15)/238*100
yellow <- c(47,32,25,21,19)/196*100
orange <- c(48,24,27,27,25)/158*100
red <- c(10,2,4,1,6)/20*100

其中四组中的 30、47、48 和 10 名患者患有 CHF。 33, 32, 24, 2 名患者有 DM 等等……

使用cbind() 我得到这个矩阵:

df <- cbind(condition, green, yellow, orange, red )
df
condition     green   yellow   orange   red    #I only included 1 decimal. 
[1,] "CHF"    "12.6"  "24.9"   "30.4"   "50"
[2,] "DM"     "13.9"  "16.3"   "15.2"   "10"
[3,] "S"      "14.7"  "12.8"   "17.1"   "20"
[4,] "MI"     "7.1"   "10.7"   "17.1"   "5" 
[5,] "CHF"    "6.3"   "9.7"    "15.8"   "30"

它几乎看起来像我想要的,但“”让我怀疑它被编码为字符而不是正确的比例表。当我使用chisq.test() 时也会发生这种情况:

chisq.test(df)
Error in sum(x) : invalid 'type' (character) of argument 

我真的希望你能提供帮助。如何制作合适的比例表,检验四组条件分布的差异?

【问题讨论】:

  • 不幸的是,这仍然困扰着我。 chisq.test() 甚至是解决这个问题的正确统计方法吗?对于某些组,每组(绿色、黄色、橙色、红色)的总比例 > 100%,因为某些受试者有多种情况。这对考试有影响吗?我可以只看条件数并以某种方式告诉chisq.test() 每组中的受试者总数吗?

标签: r rstudio chi-squared


【解决方案1】:

我们用cbind 创建了一个矩阵,矩阵只能有一个类。将“条件”作为列将数字列更改为character,这会在chisq.test 中产生问题。

根据?chisq.test,输入参数'x'可以是vectormatrix,但允许的类是numericfactor

x - 数值向量或矩阵。 x 和 y 也可以都是因子。

因此,仅使用 numeric 向量创建 matrix 并将“条件”保留为行名称。

df <- cbind(green, yellow, orange, red)
row.names(df) <- condition
chisq.test(df)

【讨论】:

  • 天哪。如此优雅的解决方案。谢谢你。我已经为这个问题苦苦挣扎了好几个小时了。
  • @MadsLumholdt 很高兴知道该解决方案很有用。
猜你喜欢
  • 2022-12-16
  • 2022-12-07
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 2018-06-30
  • 1970-01-01
相关资源
最近更新 更多