双向表和R的卡方测试
我目前正在为学校的R项目工作。我有一个关于这个项目的问题。我必须打印双向表格,并且我的表格的每个单元格都应该包含卡方检验的结果。双向表和R的卡方测试
例如:
例如,0.7是橙色和苹果卡方检验的结果。
我知道该怎么做两个变量之间的卡方检验:
chisq.test(c(data_frame$Apple, data_frame$Orange))
然后我试图打印双向表:
list <- c("Apple", "Orange", "Grappe")
for (element in list) {
for (element2 in list) {
chisq.test(c(data_frame$element, data_frame$element2))
}
}
但它不工作,我有一个无限循环。
有人可以帮我解决这个问题吗?我是新至R 此外,对不起我的英语
没有seing data_frame
这是不可能知道下面的代码你想要做什么,但在这里不言而喻。
首先,我已经将载体的名称更改为mylist
,因为list
是一个R函数。
mylist <- c("Apple", "Orange", "Grappe")
pval <- lapply(mylist, function(x){
lapply(mylist, function(y){
if(x != y) {
chisq.test(data_frame[[x]], data_frame[[y]])$p.value
}
})
})
pval
这只会产生p值,如果你想要的chisq.test
全力输出,你会用
result <- lapply(mylist, function(x){
lapply(mylist, function(y){
if(x != y) {
chisq.test(data_frame[[x]], data_frame[[y]])
}
})
})
这将产生清单的嵌套列表,每个嵌套列表的元素是类htest
的对象,通过R中的假设测试返回的对象。
这是行得通的,谢谢。 –
试试这个
list <- c("Apple", "Orange", "Grappe")
while (element in list) {
while (element2 in list) {
chisq.test(c(data_frame$element, data_frame$element2))
}
}
您的代码在语法上不正确。 –
我们不能用while循环做列表中的元素 –
使用'data_frame [[element]]'和'element2'也是相同的。你也没有分配测试结果。而且我看到了更糟糕的英语。 –
Hello Rui Barradas,你想让我用data_frame [element] $ element替换data_frame $ element吗? –
不!用我写的'data_frame [[element]]'替换'data_frame $ element'。不同之处在于'element'是一个字符串,它包含一个df列的名字,但不是*列本身。 –