Nadpisanie "zmienne Nie pokazane" w dplyr, aby wyświetlić wszystkie kolumny z df
Kiedy mam kolumnę w lokalnej ramce danych, czasami dostaję komunikat Variables not shown
taki jak ten (śmieszny) przykład po prostu potrzebował wystarczającej ilości kolumn.
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)
Chcę zobaczyć! Jak Mogę zobaczyć wszystkie kolumny, najlepiej domyślnie. 5 answers
Istnieje (teraz) sposób nadpisania szerokości kolumn, które zostaną wydrukowane. Jeśli uruchomisz to polecenie wszystko będzie dobrze
options(dplyr.width = Inf)
Napisałem to tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-25 16:29:09
You might like 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-04 15:13:41
dplyr
posiada własne funkcje drukowania dla obiektów dplyr
. W tym przypadku obiektem, który jest wynikiem twojej operacji jest tbl_df
. Pasującą funkcją drukowania jest wtedy dplyr:::print.tbl_df
. To pokazuje, że trunc_mat
jest funkcją odpowiedzialną za to, co jest drukowane, a nie, włączając w to, które zmienne.
Niestety, dplyr:::print.tbl_df
nie przekazuje żadnych parametrów do trunc_mat
i trunc_mat
również nie obsługuje wyboru, które zmienne są wyświetlane (tylko ile wierszy). Obejście polega na oddaniu wyniku dplyr do data.frame
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-18 05:50:59
Jest to trochę stare, ale znalazłem to, szukając odpowiedzi na ten sam problem. Wymyśliłem rozwiązanie, które trzyma się ducha orurowania, ale identyczne w funkcji do zaakceptowanej odpowiedzi (zauważ, że symbol rury %.%
jest przestarzały na rzecz %>%
)
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-13 04:54:45
movies %.% group_by(year) %.% ....... %.% print.default
dplyr
używa, zamiast domyślnej opcji drukowania, dplyr:::print.tbl_df
, aby upewnić się, że ekran nie jest przeciążony ogromnymi zestawami danych. Kiedy w końcu zredukujesz swoje rzeczy do tego, czego chcesz i nie chcesz być już zbawiony przed własnymi błędami, po prostu trzymaj print.default
na końcu, aby wypluć wszystko.
BTW, methods(print)
pokazuje ile pakietów musi napisać własne funkcje print
(pomyśl o np. igraph
lub xts
- - - są to nowe typy danych, więc musisz im powiedzieć jak do wyświetlenia na ekranie).
Następny googler.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-01 04:31:31