2016-04-03 30 views
0

我有与.md.html文件最终制造麻烦的一半:Knitr只生产情节

的情节,它应该包含2面出现在.md只有一个。

相同的R脚本产生正确的情节。我尝试了latticeggplot2系统 - 结果是一样的:在Rstudio(Mac)中绘图是正确的,并在.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功能。 (俄语,在我的情况)。