2013-10-23 22 views
0

我有两个不同的数据帧。从一个I计算Richness,并在另外一个我有Environmental Variables,我希望彼此关联,因为它遵循在我的代码:R:用于相关性测试的一行代码

cor.test(Richness, E.4$Temp...C.) 
cor.test(Richness, E.4$Cond..µS.cm.1.) 
cor.test(Richness, E.4$pH) 
cor.test(Richness, E.4$Alkalinity.Gran..mequiv.m.3.) 
cor.test(Richness, E.4$HCO3) 
cor.test(Richness, E.4$NO3.N..mg.m.3.) 
cor.test(Richness, E.4$SO4..mg.l.) 

这只是一个简单的例子。 E.4数据帧有30列。你可能可以请帮我一下如何为这一切写一行代码的想法吗?

谢谢!

+2

当然...尝试'lapply(E.4,肺心病。测试,y =丰富度)'。在这个例子中你的x和y已经交换了。 –

+1

完美!谢谢@ SimonO101! – umbra

+0

还有一件事,是否有办法从所有这些关联测试中提取p值并将它们添加到表中? – umbra

回答

0

你去那里:

df1 <- data.frame(Richness = 1:100) 
df2 <- data.frame(Var1 = df1$Richness + rnorm(100), Var2 = rnorm(100)) 


lapply(1:ncol(df2), function(x) cor.test(df1$Richness, df2[ ,x])) 

更新:

对于您可以使用p值:

sapply(1:ncol(df2), function(x) cor.test(df1$Richness, df2[ ,x])$p.value) 
+4

或者你可以做'lapply(df2,cor.test,x = df1 [,1])',这样它就和我留下的评论一样。 –

相关问题