我对 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
我真的希望您能提供帮助。如何制作适当的比例表并检验四组中条件分布的差异?
答案 0 :(得分:2)
我们用cbind
创建了一个矩阵,矩阵只能有一个类。将“条件”作为一列会将数字列更改为character
,这会在chisq.test
中产生问题。
根据?chisq.test
,输入参数'x'可以为vector
或matrix
,但允许的类为numeric
或factor
。
x-一个数字矢量或矩阵。 x和y都可以是因子。
因此,仅使用matrix
个向量创建numeric
,并将“条件”保留为行名。
df <- cbind(green, yellow, orange, red)
row.names(df) <- condition
chisq.test(df)