2016-04-03 1 views
0

Je ne parviens pas à la prise finale de .md et .html fichiers:Knitr ne produit que la moitié de la parcelle

l'intrigue, ce qui devrait contenir 2 facettes apparaît dans .md avec un seul.

Le même script R produit un tracé correct. J'ai essayé lattice et ggplot2 systèmes -résult est la même chose: l'intrigue est correcte dans Rstudio (Mac) et perd 1 facette en .md et .html.

library(lattice) 
xyplot(steps ~ interval | day_type, data = mean_tsd_final, layout = c(1, 2), 
     type="l", xlab = "Interval", ylab = "Number of steps") 

> str(mean_tsd_final) 
'data.frame': 576 obs. of 3 variables: 
$ interval: int 0 5 10 15 20 25 30 35 40 45 ... 
$ day_type: Factor w/ 2 levels "weekday","weekend": 1 1 1 1 1 1 1 1 1 1 ... 
$ steps : num 2.251 0.445 0.173 0.198 0.099 ... 

Produit par R-scriptum

Produced by R-script

Produit par le même code par knitr

Produced by the same code by knitr

+0

Ajouté à la question, merci! – Dimak

+1

Oui, je voulais dire "mean_tsd_final' mais vous l'avez. Je voulais aussi dire 'dput' au lieu de' str' car cela nous aide à entrer vos données. Mais à partir du 'str', je suppose que vous avez un sous-ensemble lorsque vous tracez dans knitr - vous voyez que' day_type' est un facteur avec deux niveaux, mais je peux reproduire ce tracé quand vous avez un facteur avec deux niveaux mais seulement un niveau est présent dans les données – rawr

+0

Les deux niveaux de facteur sont présentés ... – Dimak

Répondre

0

Alors, la réponse est: Code pour définir les préférences locales:

## To set it in english 
Sys.setlocale("LC_TIME","en_US.UTF-8") 

Son important, parce que nous utilisons la comparaison de chaîne pour produire des variables de facteur. est ici code pour making mean_td_final trame de données:

##Adding column with type of the day 
Activity_data_filled$day_type <- weekdays(as.Date(Activity_data_filled$date)) 
Activity_data_filled$day_type <- ifelse(Activity_data_filled$day_type %in% c("Saturday", "Sunday"),"weekend", "weekday") 
Activity_data_filled$day_type <-as.factor(Activity_data_filled$day_type) 

##Aggegating by type of the day and time intervals 
mean_tsd_final <- aggregate(Activity_data_filled$steps, 
         by=list(Activity_data_filled$interval, 
           Activity_data_filled$day_type),mean) 

Sans paramètres locaux overriden, la fonction ifelse produire seulement 1 niveau « semaine », car il compare les chaînes « samedi » et « dimanche » avec des noms locaux des jours, produits par weekdays fonction. (russe, dans mon cas).