2016-04-03 10 views
0

Ich habe Probleme mit der endgültigen Herstellung von .md und .html Dateien:Knitr produzieren nur die Hälfte der Parzelle

die Handlung, die mit einer nur erscheint 2 Facetten in .md enthalten soll.

Das gleiche R-Skript erzeugt die richtige Grafik. Ich versuchte lattice und ggplot2 systems-Ergebnis ist das gleiche: Plot ist in Rstudio (Mac) korrekt und verliert 1 Facette in .md und .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 ... 

Produziert von R-Skript

Produced by R-script

mit demselben Code Produktion knitr

Produced by the same code by knitr

+0

Hinzugefügt zu der Frage, thx! – Dimak

+1

Ja, ich meinte 'mean_tsd_final', aber du hast es verstanden. Ich meinte auch einen 'dput' anstelle von' str', da dies uns hilft, Ihre Daten einzugeben. Aber von der 'str' würde ich annehmen, dass Sie eine Untermenge beim Plotten in Knitr haben - Sie sehen, dass' day_type' ein Faktor mit zwei Ebenen ist, aber ich kann diese Darstellung reproduzieren, wenn Sie nur einen Faktor mit zwei Ebenen haben Eine Ebene ist in den Daten vorhanden – rawr

+0

Beide Ebenen des Faktors wird dargestellt ... – Dimak

Antwort

0

So ist die Antwort: -Code lokale Einstellungen festlegen:

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

Es ist wichtig, weil wir String-Vergleich verwenden, um Faktorvariablen zu erzeugen. Hier ist Code für making mean_td_final Datenrahmen:

##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) 

Ohne lokale Einstellungen außer Kraft gesetzt, ifelse Funktion erzeugt nur 1 Stufe „Wochentag“, weil es strings „Samstag“ und „Sunday“ mit dem lokalen Namen der Tage vergleicht, erzeugt von weekdays Funktion. (Russisch, in meinem Fall).