r dplyr options output-formatting displayformat

Anulación de "Variables no mostradas" en dplyr, para mostrar todas las columnas de df



options output-formatting (5)

Entonces, esto es un poco viejo, pero lo encontré cuando buscaba respuestas para el mismo problema. Se me ocurrió esta solución que mantiene el espíritu de la tubería pero idéntica en función a la respuesta aceptada (tenga en cuenta que el símbolo de la tubería %.% Está obsoleto en favor de %>% )

movies %>% group_by(year) %>% summarise(Length = mean(length), Title = max(title), Dramaz = sum(Drama), Actionz = sum(Action), Action = sum(Action), Comedyz = sum(Comedy)) %>% mutate(Year1 = year + 1) %>% as.data.frame %>% head

Cuando tengo una columna en un marco de datos local, a veces Variables not shown el mensaje Variables not shown , como este (ridículo) ejemplo, solo necesitaba suficientes columnas.

library(dplyr) library(ggplot2) # for movies movies %.% group_by(year) %.% summarise(Length = mean(length), Title = max(title), Dramaz = sum(Drama), Actionz = sum(Action), Action = sum(Action), Comedyz = sum(Comedy)) %.% mutate(Year1 = year + 1) year Length Title Dramaz Actionz Action Comedyz 1 1898 1.000000 Pack Train at Chilkoot Pass 1 0 0 2 2 1894 1.000000 Sioux Ghost Dance 0 0 0 0 3 1902 3.555556 Voyage dans la lune, Le 1 0 0 2 4 1893 1.000000 Blacksmith Scene 0 0 0 0 5 1912 24.382353 Unseen Enemy, An 22 0 0 4 6 1922 74.192308 Trapped by the Mormons 20 0 0 16 7 1895 1.000000 Photographe 0 0 0 0 8 1909 9.266667 What Drink Did 14 0 0 7 9 1900 1.437500 Uncle Josh''s Nightmare 2 0 0 5 10 1919 53.461538 When the Clouds Roll by 17 2 2 29 .. ... ... ... ... ... ... ... Variables not shown: Year1 (dbl)

¡Quiero ver Year1 ! ¿Cómo veo todas las columnas, preferiblemente de manera predeterminada?


Hay (ahora) una forma de anular el ancho de las columnas que se imprimen. Si ejecuta este comando, todo estará bien

options(dplyr.width = Inf)

Lo escribí here .


Puede que te guste glimpse :

> movies %>% + group_by(year) %>% + summarise(Length = mean(length), Title = max(title), + Dramaz = sum(Drama), Actionz = sum(Action), + Action = sum(Action), Comedyz = sum(Comedy)) %>% + mutate(Year1 = year + 1) %>% glimpse() Variables: $ year (int) 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,... $ Length (dbl) 1.000000, 1.000000, 1.000000, 1.307692, 1.000000, 1.000000,... $ Title (chr) "Blacksmith Scene", "Sioux Ghost Dance", "Photographe", "Ve... $ Dramaz (int) 0, 0, 0, 1, 0, 1, 2, 2, 5, 1, 2, 3, 4, 5, 1, 8, 14, 14, 14,... $ Actionz (int) 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 3, 0, 0, 1, 0,... $ Action (int) 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 3, 0, 0, 1, 0,... $ Comedyz (int) 0, 0, 0, 1, 2, 2, 1, 5, 8, 2, 8, 10, 6, 2, 6, 8, 7, 2, 2, 4... $ Year1 (dbl) 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,...NULL


dplyr tiene sus propias funciones de impresión para objetos dplyr . En este caso, el objeto que es el resultado de su operación es tbl_df . La función de impresión correspondiente es dplyr:::print.tbl_df . Esto revela que trunc_mat es la función responsable de lo que se imprime y no, incluidas las variables.

Lamentablemente, dplyr:::print.tbl_df no pasa ningún parámetro a trunc_mat y trunc_mat tampoco admite la elección de las variables que se muestran (solo cuántas filas). Una solución es lanzar el resultado de dplyr a un data.frame y usar head :

res = movies %.% group_by(year) %.% summarise(Length = mean(length), Title = max(title), Dramaz = sum(Drama), Actionz = sum(Action), Action = sum(Action), Comedyz = sum(Comedy)) %.% mutate(Year1 = year + 1) head(data.frame(res)) year Length Title Dramaz Actionz Action Comedyz 1 1898 1.000000 Pack Train at Chilkoot Pass 1 0 0 2 2 1894 1.000000 Sioux Ghost Dance 0 0 0 0 3 1902 3.555556 Voyage dans la lune, Le 1 0 0 2 4 1893 1.000000 Blacksmith Scene 0 0 0 0 5 1912 24.382353 Unseen Enemy, An 22 0 0 4 6 1922 74.192308 Trapped by the Mormons 20 0 0 16 Year1 1 1899 2 1895 3 1903 4 1894 5 1913 6 1923


movies %.% group_by(year) %.% ....... %.% print.default

dplyr utiliza, en lugar de la opción de impresión predeterminada, dplyr:::print.tbl_df para asegurarse de que su pantalla no se sobrecargue con enormes conjuntos de datos. Cuando finalmente hayas reducido tus cosas a lo que quieres y ya no quieres que te guarden de tus propios errores, solo print.default al final para escupir todo.

Por cierto, los methods(print) muestran cuántos paquetes necesitan escribir sus propias funciones de print (piense, por ejemplo, igraph o xts --- estos son nuevos tipos de datos, por lo que debe decirles cómo se muestran en la pantalla).

HTH el próximo googler.