循环调用r cor.test()没有输出

循环调用r cor.test()没有输出,r,loops,R,Loops,我试图在循环中使用cor.test r函数,但我不能完全将其转换为“函数”。我可以单独调用这些项,但我更喜欢使用循环 我的代码选择如下所示: hNames= scan(fileName, nlines = 1, what = character(), sep = ',') mydata = read.table(fileName, header = TRUE, sep = ',') names = c(hNames[2:length(hNames)]) for (i in names(myda

我试图在循环中使用cor.test r函数,但我不能完全将其转换为“函数”。我可以单独调用这些项,但我更喜欢使用循环

我的代码选择如下所示:

hNames= scan(fileName, nlines = 1, what = character(), sep = ',')
mydata = read.table(fileName, header = TRUE, sep = ',')
names = c(hNames[2:length(hNames)])

for (i in names(mydata[2:length(mydata)]))
{
        for (j in names(mydata[2:length(mydata)]))
        {cor.test(mydata[[i]], mydata[[j]], method='spearman')}
}
如果没有输出,则不起作用,但是:

cor.test(mydata$Bacteroidetes, mydata$Actinobacteria, method = 'spearman')
我在循环中尝试了几种不同的方法,但我始终得到一个错误,即“x”或“y”必须是数字向量

我的数据看起来像printmydata

PHYLUM Actino Bacter ...Tenericutes
x1     25       45    ...8
x1     26       42    ...8
x2     40       43    ...7
x2     42       41    ...5
x2     40       41    ...5
或以其原始格式:

PHYLUM,Actinobacteria,Bacteroidetes,...Tenericutes
x1,25,45,...8
x1,26,42,...8
x2,40,43,...7
x2,42,41,...5
x2,40,41,...5
我做错了什么?我如何更改它?代码会产生一些输出


非常感谢。

请将您对cor.test的呼叫与打印联系起来

用打印环绕您对cor.test的呼叫

您可以使用combn和avoid R for loop。您可以使用combn和avoid R for loop。@user2642180要稍微展开,当您直接从交互命令行调用cor.test时,它将返回一个htest对象。在命令行中发生这种情况时,R将自动调用objects print方法。但是,在脚本、函数或循环中,这是不会发生的,所以您必须显式地执行它。@joran感谢您为它们提供更多详细信息。我当时在手机上,讨厌在上面打字,所以我把它保持得很简短。@user2642180要稍微扩展一下,当您直接从交互命令行调用cor.test时,它将返回一个htest对象。在命令行中发生这种情况时,R将自动调用objects print方法。但是,在脚本、函数或循环中,这是不会发生的,所以您必须显式地执行它。@joran感谢您为它们提供更多详细信息。我当时在打电话,讨厌打字,所以我把它写得很简短。