Jimmy Erney Reyes Velasco
2020-Oct-18 05:11 UTC
[R-es] Resultado de la consola como un tibble
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]]
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_finpvalues.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 en 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 en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
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 en 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 en 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 en 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]]