2016-07-04 45 views
0

我無法在Stack-Overflow或Web上找到與此相關的更多內容。Knit2html不是生成MD文件,而是將我引向rmarkdown :: render

我得到這個錯誤:

> library(knitr) 
> knit2html("pa1_template.rmd") 
Error in knit2html("pa1_template.rmd") : 
    It seems you should call rmarkdown::render() instead of knitr::knit2html() because pa1_template.rmd appears to be an R Markdown v2 document. 

我只是rmarkdown跑了::渲染(),它創建的HTML文件。但是,我的任務是讓我通過knit2html()運行它並創建一個md文件。

當我通過RStudio「Knit HTML」菜單選項運行Rmd文件時,它會創建好HTML文件。

任何指針讚賞。

這裏是RMD文件的內容:

## Loading and preprocessing the data 

Read the data file in. 
```{r readfile} 
steps<-read.csv("activity.csv",header=TRUE, sep=",") 
steps_good<-subset(steps, !is.na(steps)) 

``` 

Sum the number of steps per day 
```{r summarize/day} 
steps_day<-aggregate(steps~date, data=steps_good, sum) 
``` 

Create a histogram of the results 
```{r histogram} 
hist(steps_day$steps, main="Frequency of Steps/day", xlab="Steps/Day", border="blue", col="orange") 
``` 

# What is the mean total number of steps taken per day? 
Calculate the mean of the steps per day 
```{r means_steps/day} 
mean_steps<-mean(steps_day$steps) 
mean_steps 
``` 
Calculate the median of the steps per day 
```{r median_steps/day} 
med_steps<-median(steps_day$steps) 
med_steps 
``` 

#What is the average daily activity pattern? 

Get the average steps per 5 minute interval 
```{r avg_5_min} 
step_5min<-aggregate(steps~interval, data=steps_good, mean) 
``` 
Plot steps against time interval, averaged across all days 
```{r plot_interval} 
plot(step_5min$interval,step_5min$steps, type="l", main="steps per time interval",ylab="Steps",xlab="Interval") 
``` 

On average, which interval during the day has the most steps. 
```{r max_interval} 
step_5min$interval[which.max(step_5min$steps)] 
``` 

#Imputing missing values 

How many NAs are there in the original table? 
```{r NAs} 
    steps_na<-which(is.na(steps)) 
    length(steps_na) 
``` 
Merge 5 minute interval with original steps table 
```{r merge} 

    steps_filled<-merge(steps, step_5min,by="interval") 
``` 

Replace NA values with mean of steps values for that time interval 
```{r replace_na} 
    steps_na<-which(is.na(steps_filled$steps.x)) 
    steps_filled$steps.x[steps_na]<-steps_filled$steps.y[steps_na] 
``` 

Create a histogram of the results 
```{r new_hist} 
steps_day_new<-aggregate(steps.x~date, data=steps_filled, sum) 
hist(steps_day_new$steps.x, main="Frequency of Steps/day", xlab="Steps/Day", border="blue", col="orange") 
``` 

It looks like the imputing of NA values increases the middle bar (mean/median) height, but other bars seem unchanged. 


Calculate the new mean of the steps per day 
```{r new_means_steps/day} 
mean_steps<-mean(steps_day_new$steps.x) 
mean_steps 
``` 
Calculate the new median of the steps per day 
```{r new_median_steps/day} 
med_steps<-median(steps_day_new$steps.x) 
med_steps 
``` 

It looks like the mean did not change, but the median took on the value of the mean, now that some non-integer values were plugged in. 


#Are there differences in activity patterns between weekdays and weekends? 
Regenerate steps_filled, and flag whether a date is a weekend or a weekday. 
Convert resulting column to factor. 
```{r fill_weekdays} 
    steps_filled<-merge(steps, step_5min,by="interval") 
    steps_filled$steps.x[steps_na]<-steps_filled$steps.y[steps_na] 
    steps_filled<-cbind(steps_filled, wkday=weekdays(as.Date(steps_filled$date))) 
    steps_filled<-cbind(steps_filled, day_type="", stringsAsFactors=FALSE) 

    for(i in 1:nrow(steps_filled)){ 
    if(steps_filled$wkday[i] %in% c("Saturday","Sunday")) 
     steps_filled$day_type[i]="Weekend" 
    else 
     steps_filled$day_type[i]="Weekday" 
    } 
    steps_filled$day_type<-as.factor(steps_filled$day_type) 
``` 

Get average steps per interval and day_type 
```{r plot_interva_day_type} 
steps_interval_day<-aggregate(steps_filled$steps.x,by=list(steps_filled$interval,steps_filled$day_type),mean) 
``` 

Plot the weekend and weekday results in a panel plot. 
```{r day_type_plot} 
weekday_intervals<-subset(steps_interval_day, steps_interval_day$Group.2=="Weekday",select=c("Group.1","x")) 
weekend_intervals<-subset(steps_interval_day, steps_interval_day$Group.2=="Weekend",select=c("Group.1","x")) 
par(mfrow=c(1,2)) 
plot(weekday_intervals$Group.1,weekday_intervals$x,type="l",xlim=c(0,2400), ylim=c(0,225),main="Weekdays",xlab="Intervals",ylab="Mean Steps/day") 
plot(weekend_intervals$Group.1,weekend_intervals$x,type="l",xlim=c(0,2400), ylim=c(0,225),main="Weekends",xlab="Intervals",ylab="") 

回答

1

在RStudio,您可以在YAML頭添加keep_md: true

--- 
title: "Untitled" 
output: 
    html_document: 
    keep_md: true 
--- 

使用此選項,您將同時獲得HTMLmd文件。

+0

我只有一行 'output:html_document:keep_md:true' ,它不是那樣的。下次我會記住這一點。 – David

+0

當然,縮進在YAML標題中非常重要。 – romles

0

它曾與針織(),而不是knit2html()

0

試試這個:

setwd("working_directory") 
library(knitr) 
knit("PA1_template.Rmd", output = NULL) 

添加output=NULL"對我來說是關鍵。

祝你好運!

相關問題