R: ¿Cómo aplicar una función que genera un marco de datos para varias columnas (usando dplyr)?

Quiero encontrar correlaciones, valores p y un IC del 95% entre una columna específica y todas las demás columnas en un marco de datos. El paquete 'escoba' proporciona un ejemplo de cómo hacer eso entre dos columnas usando cor.test con dplyr y tuberías. Para mtcars y, digamos, columna mpg podemos ejecutar una correlación con otra columna:

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

La salida es un marco de datos de una sola fila. Me gustaría ejecutar cor.test para mpg con cada columna y enviar la salida a una fila separada. Cuando la columna mpg se empareja con cualquier otra columna, el resultado deseado se vería así:

    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

Tenga en cuenta los nombres de las filas agregadas en la primera columna. Muestran qué columna se emparejó con mpg para la prueba de cor. Idealmente, me gustaría hacer esto con dplyr y tuberías.

Respuestas a la pregunta(1)

Su respuesta a la pregunta