Ich möchte Korrelationen, p-Werte und 95% CI zwischen einer bestimmten Spalte und allen anderen Spalten in einem Datenframe finden. Das "Besen" -Paket bietet ein Beispiel, wie das zwischen zwei Spalten mit cor.test mit dplyr und Pipes zu tun ist. Für mtcars und, sagen wir, mpg Spalte können wir eine Korrelation mit einer anderen Säule laufen gelassen:R: Wie kann man eine Funktion anwenden, die einen Datenrahmen für mehrere Spalten ausgibt (mit dplyr)?
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 eine einreihige Datenrahmen. Ich möchte cor.test für mpg mit jeder Spalte ausführen und die Ausgabe an eine separate Zeile senden. Wenn mpg Spalte mit jeder anderen Spalte gekoppelt ist, würde die gewünschte Ausgabe wie folgt aussehen:
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
Hinweis die zusätzlichen Zeilennamen in der ersten Spalte. Sie zeigen an, welche Spalte mit mpg für den cor.test gepaart wurde. Im Idealfall möchte ich das mit dplyr und Pipes machen.
Danke, @Bejnamin, für eine solche prägnante und klare Lösung ! Wie ich verstehe, erreichen Sie das Hauptziel mit nur drei Rohren: mtcars%>% sammeln (var, value, -mpg)%>% group_by (var)%>% do (sauber (cor.test (. $ mpg,. $ value)). Der Rest des Codes ist nur nach var. – Irakli
zu sortieren Ja, das ist richtig.Es ist nur eine Frage von, ob Sie sie in der gleichen Reihenfolge wollen, wie sie erscheinen, ich die ursprünglichen Daten – Benjamin