R: Wie wende ich eine Funktion an, die einen Datenrahmen für mehrere Spalten ausgibt (mit dplyr)?

Ich möchte Korrelationen, p-Werte und 95% CI zwischen einer bestimmten Spalte und allen anderen Spalten in einem Datenrahmen finden. Das 'Besen'-Paket bietet ein Beispiel dafür, wie dies zwischen zwei Spalten mithilfe von cor.test mit dplyr und Pipes durchgeführt wird. Für mtcars und zum Beispiel mpg können wir eine Korrelation mit einer anderen Spalte ausführen:

library(dplyr)
library(broom)
mtcars %>% do(tidy(cor.test(.$mpg, .$cyl)))

estimate statistic      p.value parameter   conf.low  conf.high
1 -0.852162 -8.919699 6.112687e-10        30 -0.9257694 -0.7163171

Die Ausgabe ist ein einzeiliger Datenrahmen. Ich möchte cor.test for mpg mit jeder Spalte ausführen und die Ausgabe an eine separate Zeile senden. Wenn die mpg-Spalte mit jeder anderen Spalte gepaart wird, sieht die gewünschte Ausgabe folgendermaßen aus:

    estimate statistic      p.value parameter   conf.low     conf.high
cyl  -0.852162  -8.919699 6.112687e-10       30 -0.9257694 -0.7163171
disp -0.8475514 -8.747152 9.380327e-10       30 -0.9233594 -0.7081376
hp   -0.7761684 -6.742389 1.787835e-07       30 -0.8852686 -0.5860994
drat  0.6811719  5.096042 1.77624e-05        30 0.4360484  0.832201
wt   -0.8676594 -9.559044 1.293959e-10       30 -0.9338264 -0.7440872
qsec  0.418684   2.525213 0.01708199         30 0.08195487 0.6696186
vs    0.6640389  4.864385 3.415937e-05       30 0.410363 0.8223262
am    0.5998324  4.106127 0.0002850207       30 0.3175583  0.784452
gear  0.4802848  2.999191 0.005400948        30 0.1580618 0.7100628
carb -0.5509251  -3.61575 0.001084446        30 -0.754648 -0.2503183

Notieren Sie die hinzugefügten Zeilennamen in der ersten Spalte. Sie zeigen, welche Spalte mit mpg für den cor.test gepaart wurde. Idealerweise würde ich das mit Dplyr und Pipes machen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage