排除交叉表中的值

时间:2012-09-23 15:18:49

标签: r dataset chi-squared

  

可能重复:
  R filtering out a subset

我有一个 R 数据集。在这个数据集中,我希望使用包gmodels为两个分类变量创建一个crosstable,然后对它们运行chisq.test。 这两个变量是witnessagegroupwitness由具有值1,2和9的观察值组成。agegroup由值1,2组成。 我希望从表格中排除witness=9或/和第三个变量EMS=2的值,但我不确定如何继续。

library(gmodels)
CrossTable (mydata$witness, mydata$agegroup)
chisq.test (mydata$witness, mydata$agegroup)

...所以我的问题是,如何在witness!=9EMS!=2

的条件下执行上述操作

2 个答案:

答案 0 :(得分:1)

 data:
    witness agegroup EMS
    1 1 2
    2 2 2
    1 1 2
    2 1 2
    9 2 2
    2 2 2
    1 2 2
    9 2 2
    2 1 2
 #save the data in your current working directory

 data <- read.table("data", header=TRUE, sep = " ")

 data$witness[data$witness == "9"] <- NA

 mydata <- data[!is.na(data$witness),]

 library("gmodels")

 CrossTable(mydata$witness, mydata$agegroup, chisq=TRUE)

您可以将变量“EMS”保留在“mydata”中。它对你的分析没有害处! HTH

答案 1 :(得分:1)

我希望这个问题能够被关闭,因为它看起来似乎是重复的。但正如ChaseI所建议的那样,我认为某种形式的子集化是最简单的方法,例如。

mydata[mydata$witness !=9 & mydata$EMS !=2,]