来自列的过滤数据的卡方
Chi square for filtered data from column
我尝试用谷歌搜索这个答案,但我不知所措。
所以我有这样的数据:
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 中这样做吗?
此外,如果不应该采用其中一种统计方法,请随时提出建议。
您可以为年龄组是否为青少年创建一个二元变量。我喜欢给二进制或布尔变量命名,例如 isTeen
以保持跟踪。所以使用 ifelse
调用,如果 AgeGroup
是 "Teens",我只给新列一个 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。
我尝试用谷歌搜索这个答案,但我不知所措。
所以我有这样的数据:
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 中这样做吗?
此外,如果不应该采用其中一种统计方法,请随时提出建议。
您可以为年龄组是否为青少年创建一个二元变量。我喜欢给二进制或布尔变量命名,例如 isTeen
以保持跟踪。所以使用 ifelse
调用,如果 AgeGroup
是 "Teens",我只给新列一个 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。