我有一个包含大约 20,000 个观察值的数据框。由此我创建了一个列联表,其中包含两个变量的频率。
有了这个,我想对独立性进行卡方检验,看看我的两个变量之间是否存在关系。通常这很容易,但许多单元格的预期值为 0,尽管原始数据框的大小很大。我想删除频率小于 5 的所有行。
我已经广泛搜索了堆栈交换,但我找不到解决这个特定问题的解决方案,我要么a)理解(我对 R 比较陌生),要么 b)使用列联表而不是原始数据框.
非常感谢任何帮助。
编辑:
感谢您的回复贾斯汀。
根据要求,我已经上传了数据框和列联表的摘录。我还上传了到目前为止我尝试过的少量代码,并有结果。
数据框
Department Super
AAP 1
ACS 4
ACE 1
AMA 1
APS 3
APS 2
APS 1
APS 1
ARC 5
ARC 7
ARC 1
BIB 6
BIB 6
BMS 2
所以有两列,第一列是三字母部门代码,第二列是一位整数 (1-7)。
列联表
table(department,super)
1 2 3 4 5 6 7 8
ACS 32 10 7 24 50 7 24 14
AMA 0 4 2 6 10 3 11 1
...
所以有一个标准的带有频率的列联表。
到目前为止,我知道我可以创建一个逻辑测试来测试单元格内容是否小于 5:
depSupCrosstab <- depSupCrosstab[,2:8]>5
我不知道的是如何使用这行代码创建的矩阵来删除整行(如果它们有任何 FALSE 条目)。
希望有帮助。恐怕我是新手,但只有一种学习方法......