我正在研究测量月与月之间的相关性。来自Mitchell数据的温度(附带alr3包)。我想将系数四舍五入到最接近千分之一,但当我在代码中添加round()
时出现了这个错误:
Error in round(cor.test(Month, Temp), 3) :
non-numeric argument to mathematical function
但是,如果我将cor.test
与cor
交换进行舍入工作。 cor.test
导致问题怎么办?我如何调整我的代码(如下)以允许舍入工作?
with(Mitchell, round(cor.test(Month, Temp), 3))
答案 0 :(得分:2)
请参阅cor.test
的帮助文件。 cor.test
函数返回一个列表,其中包含htest
类属性,而不是圆形所需的数字向量。
帮助文件中的示例:
x<-cor.test(~ CONT + INTG, data = USJudgeRatings)
is.numeric(x)
#> [1] FALSE
class(x)
#> [1] "htest"
您可能只想使用不同数量的数字打印,在这种情况下,您可以查看此类的打印功能。
getAnywhere(print.htest)
但是,即使存在digits
参数,也仅限于p值。所以,你只需要自己进行四舍五入:
structure(rapply(z,function(x) if(is.numeric(x)) round(x,3) else x,how="replace"),
class="htest")
Pearson's product-moment correlation data: CONT and INTG t = -0.861, df = 41, p-value = 0.395 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.417 0.174 sample estimates: cor -0.133