ハイハターライブラリを使用して、さまざまなプロットをループでプロットすることにいくつか問題があります。私のコードは次のようになります:Markdown R:ループにプロットするためにハイハターを使用する
ここでファイルをアップロードし、すべてのNA値を "na"文字列に変換します。
DT <- fread(file, sep='auto',na.strings=c("Na","-",""), blank.lines.skip=TRUE, stringsAsFactors = FALSE)
DTT <- DT
```
```{r, echo=F, results='asis'}
for(i in seq_along(DTT)) {
DTT[[i]] <- sapply(DTT[[i]], function(x) if(is.na(x)) x <- "na" else x <- x)
DTT[[i]] <- as.factor(DTT[[i]])
}
私はループを実行しようとしました:
for(i in seq_along(DTT)) {
hc <- highchart() %>%
hc_title(text = 'prueba',
style = list(fontSize = "15px")) %>%
hc_chart(type = 'pie') %>%
hc_xAxis(categories = DTT[[i]]) %>%
hc_add_series(DTT[[i]], name = "Market", showInLegend = FALSE)
hc
}
はまた、私は、関数を作成し、ループを通してそれを呼び出そうとしましたが、両方が動作しませんでした。
最後に、lapply function
を使用して、データフレームのすべての列にプロット関数を適用しましたが、うまく機能しませんでした。おそらく私はlapplyのプロセスを正しく行っていないでしょう。私の検索
gethc <- function(DT) {
hc <- highchart() %>%
hc_title(text = 'prueba',
style = list(fontSize = "15px")) %>%
hc_chart(type = 'pie') %>%
hc_xAxis(categories = DT) %>%
hc_add_series(DT, name = "Market", showInLegend = FALSE)
hc
}
lapply(DTT, gethc)
が見つかりました:あなたが自動印刷がオフになっているが、それは何も印刷されませんでしたので、ループ内での印刷を使用する必要がPlot inside a loop using highcharter
。
例:
DT <- mtcars
for(i in seq_along(DT)) {
DT[[i]] <- sapply(DT[[i]], function(x) if(is.na(x)) x <- "na" else x <- x)
}
gethc <- function(i) {
hc <- highchart() %>%
hc_title(text = 'prueba',
style = list(fontSize = "15px")) %>%
hc_chart(type = 'pie') %>%
hc_xAxis(categories = DT[[i]]) %>%
hc_add_series(DT[[i]], name = "Market", showInLegend = FALSE)
print(hc)
}
for(i in seq_along(DT)) {
gethc(i)
}
これは.Rプログラムで動作しますが、誰かがこの問題のいくつかの解決策を持っている場合はRマークダウン
にそれは本当に参考になりますではありません。
したがって、 'hc'の代わりに' print(hc) 'を使用すると動作しません。私たちに再現可能な実例を教えてもらえますか?たくさんのプロットを作成しようとしていますか?毎回 'hc'を上書きしているからです。 RMarkdownのドキュメント(おそらく通常のクリーンセッション)の外で動作しますか? – Axeman
はい通常の.Rで動作し、完全にプロットしますが、markdownでは全く動作しません。必要な場合は、コードを送信できます。 –
単純に完全に再現可能な例を含めると、あなたの質問は答えを受け取る可能性が非常に高くなります。 – Axeman