R: Como aplicar uma função que gera um quadro de dados para várias colunas (usando o dplyr)?
Eu quero encontrar correlações, valores de p e IC de 95% entre uma coluna específica e todas as outras colunas em um dataframe. O pacote 'vassoura' fornece um exemplo de como fazer isso entre duas colunas usando cor.test com dplyr e pipes. Para mtcars e, digamos, coluna mpg, podemos executar uma correlação com outra coluna:
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
A saída é um quadro de dados de linha única. Gostaria de executar o cor.test para o mpg com cada coluna e enviar a saída para uma linha separada. Quando a coluna mpg é emparelhada com todas as outras colunas, a saída desejada será semelhante a esta:
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
Observe os nomes de linha adicionados na primeira coluna. Eles mostram qual coluna foi combinada com mpg para o teste. Idealmente, eu gostaria de fazer isso com dplyr e pipes.