使用 cor(mtcars, method='pearson')
生成一个矩阵,显示 mtcars
中所有变量与 mtcars
中所有其他变量的皮尔逊相关性 . 例如:
head(cor(mtcars, method='pearson'))
mpg cyl disp hp drat wt qsec vs am gear
mpg 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.6811719 -0.8676594 0.41868403 0.6640389 0.5998324 0.4802848
cyl -0.8521620 1.0000000 0.9020329 0.8324475 -0.6999381 0.7824958 -0.59124207 -0.8108118 -0.5226070 -0.4926866
disp -0.8475514 0.9020329 1.0000000 0.7909486 -0.7102139 0.8879799 -0.43369788 -0.7104159 -0.5912270 -0.5555692
hp -0.7761684 0.8324475 0.7909486 1.0000000 -0.4487591 0.6587479 -0.70822339 -0.7230967 -0.2432043 -0.1257043
drat 0.6811719 -0.6999381 -0.7102139 -0.4487591 1.0000000 -0.7124406 0.09120476 0.4402785 0.7127111 0.6996101
wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.7124406 1.0000000 -0.17471588 -0.5549157 -0.6924953 -0.5832870
carb
mpg -0.5509251
cyl 0.5269883
disp 0.3949769
hp 0.7498125
drat -0.0907898
wt 0.4276059
我怎样才能得到上面相同的矩阵,除了每个值都是皮尔逊在每个变量之间的相关性之外,它是线性模型的 r.squared
值?因此,例如第一列,第二行将与 summary(lm(mtcars$mpg~ mtcars$cyl))$r.squared
相同 . 谢谢
2 回答
如果要使用行名而不是第一列(Var1),可以在上面的管道末尾添加
这将更接近您从
cor(mtcars, method='pearson')
的输出我创建了一个corlm函数,用for循环填充条目