2016-04-03 2 views
0

У меня возникли проблемы с окончательным изготовлением .md и .html файлов:Knitr производит только половину участка

сюжетом, который должен содержать 2 граней появляется в .md только с одним.

тот же скрипт R производит правильный график. Я пробовал lattice и ggplot2 системы -выполнимы результаты: график правилен в Rstudio (Mac) и теряет 1 грань в .md и .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 ... 

Произведенный R-скриптом

Produced by R-script

Произведенный таким же кодом по knitr

Produced by the same code by knitr

+0

Добавлено в вопрос, thx! – Dimak

+1

Да, я имел в виду 'mean_tsd_final', но вы его получили. Я также имел в виду 'dput' вместо' str', так как это помогает нам вводить ваши данные. Но из 'str', я бы предположил, что у вас есть подмножество при построении в knitr - вы видите, что' day_type' является фактором с двумя уровнями, но я могу воспроизвести этот сюжет, когда у вас есть фактор с двумя уровнями, но только один уровень присутствует в данных – rawr

+0

Представлены оба уровня фактора ... – Dimak

ответ

0

Итак, ответ: код, чтобы установить местные предпочтения:

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

Это важно, потому что мы используем сравнение строк для создания переменных факторов. Вот код для кадра making mean_td_final данных:

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

Без локальных настроек перекрываться, ifelse функции производит только 1 уровень «день недели», потому что он сравнивает строку «в субботу» и «воскресенье» с местными названиями дней, произведенных по weekdays функция. (русский, в моем случае).

Смежные вопросы