Lorsque j'ai une colonne dans un bloc de données local, parfois je reçois le message Variables not shown
comme cet exemple (ridicule) avait juste besoin de suffisamment de colonnes.
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)
Je veux voir Year1
! Comment puis-je voir toutes les colonnes, de préférence par défaut.
Il existe (maintenant) un moyen de remplacer la largeur des colonnes imprimées. Si vous exécutez cette commande, tout ira bien
options(dplyr.width = Inf)
Je l'ai écrit ici .
Vous aimerez peut-être 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
possède ses propres fonctions d'impression pour les objets dplyr
. Dans ce cas, l'objet résultant de votre opération est tbl_df
. La fonction d'impression correspondante est alors dplyr:::print.tbl_df
. Cela révèle que trunc_mat
est la fonction responsable de ce qui est imprimé et non, y compris des variables.
Tristement, dplyr:::print.tbl_df
ne transmet aucun paramètre à trunc_mat
et trunc_mat
ne prend pas non plus en charge le choix des variables à afficher (uniquement le nombre de lignes). Une solution de contournement consiste à convertir le résultat de dplyr en data.frame
et utilisez 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
Donc, c'est un peu vieux, mais je l'ai trouvé en cherchant des réponses au même problème. Je suis venu avec cette solution qui tient à l'esprit de la tuyauterie mais identique en fonction à la réponse acceptée (notez que le symbole du tuyau %.%
est déconseillé au profit 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
movies %.% group_by(year) %.% ....... %.% print.default
dplyr
utilise, au lieu de l'option d'impression par défaut, dplyr:::print.tbl_df
pour s'assurer que votre écran ne soit pas surchargé avec d'énormes ensembles de données. Lorsque vous avez finalement réduit vos affaires à ce que vous voulez et ne voulez plus être sauvé de vos propres erreurs, collez simplement print.default
À la fin pour tout cracher.
BTW, methods(print)
montre combien de packages ont besoin d'écrire leurs propres fonctions print
(pensez, par exemple, igraph
ou xts
--- ce sont nouveaux types de données, vous devez donc leur dire comment s'afficher à l'écran).
HTH le prochain googleur.