Rでforループ内にkable文を入れたら、表を出力してくれず困ったときの対処
ただの小ネタで備忘録です。
困ったこと
次のような文をR Markdownで書いたときに、kableの表が表示されなくて困ったことがありました。
#```{r}
files <- list.files(path, pattern=".csv")
for (csv.file in list.file){
df <- read.csv(csv.file)
knitr::kable(summary(df)) #問題の箇所
}
#```
(RMarkdownのchunk区切りをそのまま表示できないので、苦し紛れにコメントしてます。)
これを実行してもkableの表は出力されません。forの外なら出力されるのに。。
解決方法
stack overflowにドンピシャの解決方法が載っておりがあり、これにならって書き直して実行したら無事に出力されました。```{r results="asis"}を指定して、kableの箇所はprintで出力されるようにする必要がありましたという話。
#```{r results = "asis"}
files <- list.files(path, pattern=".csv")
for (csv.file in list.file){
df <- read.csv(csv.file)
print(knitr::kable(summary(df))) #問題の箇所
cat("\n")
}
#```
終わりに
まあ、Rではfor文はあまり好まれませんし、他のやり方をした方がいいのかなとは思います。
参考文献
Stack overflow - R: why kable doesn't print inside a for loop?
Author And Source
この問題について(Rでforループ内にkable文を入れたら、表を出力してくれず困ったときの対処), 我々は、より多くの情報をここで見つけました https://qiita.com/purple_jp/items/8c1bb6ac912d37f10330著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .