来自列的过滤数据的卡方

时间:2018-05-31 18:37:05

标签: r chi-squared

我试过谷歌搜索这个答案,但我不知所措。

所以我有这样的数据:

PatientNum<- c(1, 2, 3, 4, 5,6,7)
Plastics <- c(1, 0, 1, 1, 0, 0,1) 
Age   <- c(19, 18, 35, 82, 45,46, 65) 
BloodLoss<-c(5,4,5,10,5,15,9)
AgeGroup<-c("Teens","Teens","30s", "80s","40s","40s","60s")

dataset <- data.frame(PatientNum, Plastics,Age, BloodLoss,AgeGroup)

我试图从之前的一篇文章中重新创建一些数据较少的数据。在它里面,它们有时会像我期望的那样做一个卡方,即:

chisq.test(table(dataset$Plastics,dataset$AgeGroup))

但是在其他表中,他们会做一个卡方,只比较塑料与非塑料的青少年(塑料专栏中的1和0)。这对我来说很容易在一个在线卡方计算器中,我填写(青少年+塑料)/(青少年+非塑料)与(非青少年+塑料)/非青少年+非塑料... ...但如何我在R中做到了吗?

另外,请随时告知是否应该采用其中一种统计方法。

1 个答案:

答案 0 :(得分:1)

您可以为年龄组是否为青少年制作二元变量。我喜欢提供像isTeen这样的二进制或布尔变量名称来跟踪。因此,如果ifelse是&#34;青少年&#34;,那么使用AgeGroup调用,我只需将新列设为1,否则为0。

PatientNum<- c(1, 2, 3, 4, 5,6,7)
Plastics <- c(1, 0, 1, 1, 0, 0,1) 
Age   <- c(19, 18, 35, 82, 45,46, 65) 
BloodLoss<-c(5,4,5,10,5,15,9)
AgeGroup<-c("Teens","Teens","30s", "80s","40s","40s","60s")

dataset <- data.frame(PatientNum, Plastics,Age, BloodLoss,AgeGroup)

dataset$isTeen <- ifelse(dataset$AgeGroup == "Teens", 1, 0)
dataset
#>   PatientNum Plastics Age BloodLoss AgeGroup isTeen
#> 1          1        1  19         5    Teens      1
#> 2          2        0  18         4    Teens      1
#> 3          3        1  35         5      30s      0
#> 4          4        1  82        10      80s      0
#> 5          5        0  45         5      40s      0
#> 6          6        0  46        15      40s      0
#> 7          7        1  65         9      60s      0

chisq.test(table(dataset$Plastics, dataset$isTeen))

#>  Pearson's Chi-squared test with Yates' continuity correction
#> 
#> data:  table(dataset$Plastics, dataset$isTeen)
#> X-squared = 1.438e-32, df = 1, p-value = 1

reprex package(v0.2.0)创建于2018-05-31。