table 和 chisq.test() 在 R 中的适当比例
Proper proportion table and chisq.test() in R
我对 R(Mac 上的版本 1.1.383)还是很陌生,如果这个问题很基础,我深表歉意。我已经在互联网上和此页面上搜索了解决方案,但找不到任何解决方案。
我想做的是做一个比例table,在这个比例上我可以用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"
它几乎看起来像我想要的,但是“”让我怀疑它被编码为字符而不是适当的比例 table。当我使用 chisq.test()
时也会发生这种情况:
chisq.test(df)
Error in sum(x) : invalid 'type' (character) of argument
我真的希望你能帮上忙。如何合理比例table并检验四组条件分布的差异?
我们用 cbind
创建了一个矩阵,矩阵只能有一个 class。将 'condition' 作为列将数字列更改为 character
,这会在 chisq.test
.
中产生问题
根据?chisq.test
,输入参数'x'可以是vector
或matrix
,但允许的class是numeric
或factor
.
x - a numeric vector or matrix. x and y can also both be factors.
因此,创建仅包含 numeric
个向量的 matrix
,并将 'condition' 保留为行名称。
df <- cbind(green, yellow, orange, red)
row.names(df) <- condition
chisq.test(df)
我对 R(Mac 上的版本 1.1.383)还是很陌生,如果这个问题很基础,我深表歉意。我已经在互联网上和此页面上搜索了解决方案,但找不到任何解决方案。
我想做的是做一个比例table,在这个比例上我可以用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"
它几乎看起来像我想要的,但是“”让我怀疑它被编码为字符而不是适当的比例 table。当我使用 chisq.test()
时也会发生这种情况:
chisq.test(df)
Error in sum(x) : invalid 'type' (character) of argument
我真的希望你能帮上忙。如何合理比例table并检验四组条件分布的差异?
我们用 cbind
创建了一个矩阵,矩阵只能有一个 class。将 'condition' 作为列将数字列更改为 character
,这会在 chisq.test
.
根据?chisq.test
,输入参数'x'可以是vector
或matrix
,但允许的class是numeric
或factor
.
x - a numeric vector or matrix. x and y can also both be factors.
因此,创建仅包含 numeric
个向量的 matrix
,并将 'condition' 保留为行名称。
df <- cbind(green, yellow, orange, red)
row.names(df) <- condition
chisq.test(df)