[R-es] Resultado de la consola como un tibble

Carlos Ortega co| @end|ng |rom qu@||tyexce||ence@e@
Dom Oct 18 12:32:32 CEST 2020


Hola,

Bueno, puedes hacer el cálculo de una forma mucho más compacta y rápida.
Esta forma es especialmente recomendable cuando tienes muchas columnas y
muchas filas.

> library(data.table)
> myDT       <- as.data.table(mtcars)
> myDTlong <- melt(myDT, measure.vars=1:ncol(myDT))
> myDTlong[ , list(p_value = shapiro.test(value)$p.value, v_stat =
shapiro.test(value)$statistic) , by = .(variable)]
    variable      p_value    v_stat
 1:      mpg 1.228814e-01 0.9475647
 2:      cyl 6.058338e-06 0.7533100
 3:     disp 2.080657e-02 0.9200127
 4:       hp 4.880824e-02 0.9334193
 5:     drat 1.100608e-01 0.9458839
 6:       wt 9.265499e-02 0.9432577
 7:     qsec 5.935176e-01 0.9732509
 8:       vs 9.737376e-08 0.6322635
 9:       am 7.836354e-08 0.6250744
10:     gear 1.306844e-05 0.7727856
11:     carb 4.382405e-04 0.8510972

Saludos,
Carlos Ortega
www.qualityexcellence.es



El dom., 18 oct. 2020 a las 11:53, Carlos Ortega (<cof using qualityexcellence.es>)
escribió:

> Hola,
>
> No hace falta (en este caso) capturarlo de la consola.
> El resultado de la función apply se puede capturar y procesar.
>
> > data("mtcars")
> > # Mtcars_matriz <- as.matrix(mtcars)
> > res_out <- apply(mtcars, MARGIN =2, FUN = shapiro.test)
> >
> >
> > res_df <- as.data.frame(unlist(res_out))
> > res_df$vars <- rownames(res_df)
> > rownames(res_df) <- NULL
> > names(res_df)[1] <- c('values')
> >
> > library(stringr)
> > res_fin <- data.frame(
> +   pvalues = res_df[ str_detect(res_df$vars, "value"), ],
> +   estadis = res_df[ str_detect(res_df$vars, "statistic"), ]
> + )
> > res_fin
>          pvalues.values pvalues.vars    estadis.values     estadis.vars
> 2     0.122881358539443  mpg.p.value 0.947564726479274  mpg.statistic.W
> 6  6.05833813310341e-06  cyl.p.value 0.753310022842721  cyl.statistic.W
> 10   0.0208065696108598 disp.p.value 0.920012680133146 disp.statistic.W
> 14   0.0488082381051741   hp.p.value  0.93341934019855   hp.statistic.W
> 18    0.110060757426683 drat.p.value 0.945883896521269 drat.statistic.W
> 22   0.0926549888932132   wt.p.value 0.943257719087817   wt.statistic.W
> 26    0.593517649295161 qsec.p.value 0.973250948857977 qsec.statistic.W
> 30 9.73737573091618e-08   vs.p.value 0.632263534949347   vs.statistic.W
> 34 7.83635448813453e-08   am.p.value 0.625074366031524   am.statistic.W
> 38 1.30684376520844e-05 gear.p.value 0.772785633173186 gear.statistic.W
> 42 0.000438240495931375 carb.p.value 0.851097225173946 carb.statistic.W
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El dom., 18 oct. 2020 a las 7:12, Jimmy Erney Reyes Velasco (<
> jimmyreyesvelasco using gmail.com>) escribió:
>
>> Buen día
>> estimados
>> Estoy tratando de hacer un tibble con los resultados de un apply que se
>> muestran en la consola que me da R, no estoy seguro si eso se pueda hacer,
>> pero me gustaría organizar los resultados de esa manera.
>> mi código es:
>> data("mtcars")
>> Mtcars_matriz <- as.matrix(mtcars)
>> apply(Mtcars_matriz, MARGIN =2, FUN = shapiro.test)
>> DF2 <- tibble(Variable = NA, W = NA, Pvalue = NA)
>>
>> la idea es que me guarde el nombre de la variable, el valor del
>> estadístico
>> y el pvalor.
>>
>> ¿alguien sabe si esto se puede hacer?
>> agradezco mucho su información
>> saludos
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es