私はforループを使用してabout about RMarkdownについて質問があります。Rマークダウンhtml_document for loop
私の生データ(QQ.csv):
type,com,year,month,value
A,CH,2016,1,0
A,CH,2016,2,0
A,CH,2016,3,0
A,CH,2016,4,0
A,CH,2016,5,0
A,CH,2016,6,0
A,CH,2016,7,0
A,CH,2016,8,0
A,CH,2016,9,453128
A,CH,2016,10,868256
A,CH,2016,11,1015080
A,CH,2016,12,650912
B,CH,2016,1,0
B,CH,2016,2,0
B,CH,2016,3,0
B,CH,2016,4,0
B,CH,2016,5,0
B,CH,2016,6,61273
B,CH,2016,7,27711
B,CH,2016,8,161780
B,CH,2016,9,48889
B,CH,2016,10,72805
B,CH,2016,11,131466
B,CH,2016,12,73756
C,CH,2016,1,0
C,CH,2016,2,0
C,CH,2016,3,0
C,CH,2016,4,0
C,CH,2016,5,0
C,CH,2016,6,0
C,CH,2016,7,0
C,CH,2016,8,2200
C,CH,2016,9,111384
C,CH,2016,10,28758
C,CH,2016,11,21161
C,CH,2016,12,0
IはRチャンクと出力私html_documentにforループを使用したいです。
は、ここに私のコードです:
---
title: "QQ Test"
output:
html_document:
css: custom.css
theme: journal
toc: true
toc_float:
collapsed: false
smooth_scroll: false
toc_depth: 2
---
```{r, echo=FALSE, message=FALSE, warning=FALSE, results = 'asis'}
knitr::opts_chunk$set(echo = FALSE)
library(lubridate)
library(ggplot2)
library(plotly)
library(DT)
QQ <- read.csv("C://Users//PECHEN//Desktop//QQ.csv" , header = T ,colClasses = c("year"="factor", "month"="factor"))
QQ_list <- split(QQ, factor(QQ$type))
QQ_list <- lapply(QQ_list, function(x) {
x$date_label <- ymd(paste(x$year, month.abb[ x$month ], 01, sep = "-"))
x
})
for (i in paste(names(QQ_list))) {
cat(paste("#", i, "{.tabset .tabset-pills}"), sep = "\n")
cat(paste("## Table"), sep = "\n")
cat(paste("## Plot"), sep = "\n")
cat("\n\n")
}
```
さて、私の問題は、出力にforループを使用する方法でデータテーブルと、それぞれが自分のタブセットに収まるプロット。
もっと簡潔にするため、私はすでにQQ.csv
を3つに分割しました。
QQ <- read.csv("C://Users//PECHEN//Desktop//QQ.csv" , header = T ,colClasses = c("year"="factor", "month"="factor"))
QQ_list <- split(QQ, factor(QQ$type))
QQ_list <- lapply(QQ_list, function(x) {
x$date_label <- ymd(paste(x$year, month.abb[ x$month ], 01, sep = "-"))
x
})
QQ_list
$A
type com year month value date_label
1 A CH 2016 1 0 2016-01-01
2 A CH 2016 2 0 2016-05-01
3 A CH 2016 3 0 2016-06-01
4 A CH 2016 4 0 2016-07-01
5 A CH 2016 5 0 2016-08-01
6 A CH 2016 6 0 2016-09-01
7 A CH 2016 7 0 2016-10-01
8 A CH 2016 8 0 2016-11-01
9 A CH 2016 9 453128 2016-12-01
10 A CH 2016 10 868256 2016-02-01
11 A CH 2016 11 1015080 2016-03-01
12 A CH 2016 12 650912 2016-04-01
$B
type com year month value date_label
13 B CH 2016 1 0 2016-01-01
14 B CH 2016 2 0 2016-05-01
15 B CH 2016 3 0 2016-06-01
16 B CH 2016 4 0 2016-07-01
17 B CH 2016 5 0 2016-08-01
18 B CH 2016 6 61273 2016-09-01
19 B CH 2016 7 27711 2016-10-01
20 B CH 2016 8 161780 2016-11-01
21 B CH 2016 9 48889 2016-12-01
22 B CH 2016 10 72805 2016-02-01
23 B CH 2016 11 131466 2016-03-01
24 B CH 2016 12 73756 2016-04-01
$C
type com year month value date_label
25 C CH 2016 1 0 2016-01-01
26 C CH 2016 2 0 2016-05-01
27 C CH 2016 3 0 2016-06-01
28 C CH 2016 4 0 2016-07-01
29 C CH 2016 5 0 2016-08-01
30 C CH 2016 6 0 2016-09-01
31 C CH 2016 7 0 2016-10-01
32 C CH 2016 8 2200 2016-11-01
33 C CH 2016 9 111384 2016-12-01
34 C CH 2016 10 28758 2016-02-01
35 C CH 2016 11 21161 2016-03-01
36 C CH 2016 12 0 2016-04-01
私はそうtable A
がAのテーブルに表示することができ
table A <- DT::datatable(QQ_list$A)
を使用します。
plot A <- ggplot(QQ_list$A, aes(date_label , value))
のでplot A
はAのプロットに表示することができます。
# Monthly Air Quality Graphs
```{r pressure,fig.width=6,echo=FALSE,message=FALSE,results="asis"}
attach(airquality)
for(i in unique(Month)) {
cat(" \n###", month.name[i], "Air Quaility \n")
#print(plot(airquality[airquality$Month == i,]))
plot(airquality[airquality$Month == i,])
cat(" \n")
}
```
しかし、私はまだデータテーブルとggplotを構築することはできません。
は私も@jclouse(how to create a loop that includes both a code chunk and text with knitr in R)によって提供されるこの例を模倣します。
非常に高く評価します。
:リンク以下
チェック。 http://stackoverflow.com/questions/11956520/r-knitr-markdown-output-plots-within-for-loop –
こちらにも参考文献がありますが、それぞれのテーブルやプロットを各タイプで出力することはできません。 http://stackoverflow.com/questions/33269675/loop-in-r-markdown –