是否可以从循环或函数内部使用ggplotly()或datatable()在 RMarkdown 中for?例子:
---
title: "Using `ggplotly` and `DT` from a `for` loop in Rmarkdown"
output: html_document
---
```{r setup, include=FALSE}
library(ggplot2); library(DT)
```
## Without `for` loop - works
```{r}
datatable(cars)
g <- ggplot(cars) + geom_histogram(aes_string(x=names(cars)[1] ))
ggplotly(g)
```
## From inside the `for` loop - does not work (nothing is printed)
```{r}
for( col in 1:ncol(cars)) {
datatable(cars) # <-- does not work
print( datatable(cars) ) # <-- does not work either …Run Code Online (Sandbox Code Playgroud) 在 Rmarkdown 中,我想并排打印网络上的两个图像。我正在尝试这个
```{r, echo=FALSE, out.width="33%", fig.align = "center", fig.cap="Examples of the FPTP bias: In Prairies (left) and Greater Toronto area (right). Source: www.fairvote.ca"}
knitr::include_graphics(
c("https://www.fairvote.ca/wp-content/uploads/2019/12/Western-alienation-website-FPTP-page.png", "https://www.fairvote.ca/wp-content/uploads/2019/12/Toronto-Peel-halton-2019-results-website-FPTP.jpg")
)
```
Run Code Online (Sandbox Code Playgroud)
但相反,我得到了这个 - 它们仍然被打印在另一个之上:
请指教。注意:我不知道要使用什么cowplot或任何其他包。
使用创建表时,是否有一种方法可以在 data.frame 中的字符串 '有时kable生成换行符(即) ?< br >dt'\n
例如,这里:
library(data.table);
dt <- fread("https://s3.amazonaws.com/assets.datacamp.com/blog_assets/prince_raw_data.csv")
dt <- dt[301:303,2:6] #take three songs only
library(knitr); library(kableExtra)
kable(dt);
# use this line to view it: dt %>% kable %>% kable_styling()
Run Code Online (Sandbox Code Playgroud)
我的data.table dt0是:
ANSWER1 ANSWER2 ANSWER3 ANSWER4 ANSWER5 ANSCOUNT SCORE100
21 37 16 14 11 200784 61
20 37 16 15 11 177165 60
Run Code Online (Sandbox Code Playgroud)
ANSWERx是百分比。SCORE100计算为 SCORE100 := (100*ANSWER1*ANSCOUNT + 75*ANSWER2*ANSCOUNT + 50*ANSWER3*ANSCOUNT + 25*ANSWER4*ANSCOUNT) / (ANSWER1*ANSCOUNT + ANSWER2*ANSCOUNT + ANSWER3*ANSCOUNT +ANSWER4*ANSCOUNT + ANSWER5*ANSCOUNT)]
为了重新计算SCORE100在我的数据集的所有行,我需要自动(在循环中)乘法ANSWERx通过ANSCOUNT 在每一行中,然后加入所有获得的乘法和然后通过所有的总和划分ANSCOUNT。
您可以帮忙吗,大致如下:
for (c in paste0("ANSWER",1:5)) {
dt0[, as.name(paste0(c,"_t")):= as.name(c)*"ANSCOUNT", , with=T]
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
这是错误。如何理解它以及如何正确地做?
Error in `[.data.table`(dt0, , `:=`(as.name(paste0(c, "_t")), as.name(c) * :
LHS of …Run Code Online (Sandbox Code Playgroud) 这与我之前关于data.tablefor循环和函数方便性的问题有关:如何在函数和循环中使用data.table?和相关帖子:Data.table元编程.
这个小代码显示了data.table它是如何方便地完成它(例如比较dplyr).
起初,我cannot change value of locked binding for '.SD'在使用get(strY)或.SD/ .SDcols=colY下面时出错.但是当我重新启动R Session时,一切正常.
dt <- data.table(ggplot2::diamonds)
nY <- 1; nX <- c(5:7)
strY <- names(dt)[nY]; strX <- names(dt)[nX];
dt[,strY, with=F] # OK
dt[,nY, with=F] # OK
dt[,get(strY)] # OK NOW:
#NO MORE: Error in assign(ii, SDenv$.SDall[[ii]], SDenv) :
# cannot change value of locked binding for '.SD'
dt[, .SD, .SDcols=strX] # OK NOW:
#NO …Run Code Online (Sandbox Code Playgroud) 我在RStudio工作,我需要从函数内部退出我的代码(但不是RStudio会话),当它满足特定条件时,例如按键.在C/c ++中,我们使用exit(0)函数来做到这一点.在R中,如果我调用quit()它,它会尝试为我关闭整个R会话,但我只需要停止从我的函数内部执行当前编码.
即我正在寻找下面的功能,这将导致程序退出,当用户输入'q'时.
f <- function() {
if (readline("Press 'q' to exit the code: ") == 'q')
#I want to terminate the execution of program here
else
#continue the execution of other set of commands
}
Run Code Online (Sandbox Code Playgroud)
帮助我实现这一目标
我无法用闪亮的方式编译任何 .Rmd 文档。例如,这个五行文档(或任何文档,例如使用 File->New File -> R Markdown ... 创建的文档:Shiny Document)
\n---\ntitle: "Untitled"\noutput: flexdashboard::flex_dashboard\nruntime: shiny\n---\nEnd of my very short document.\nRun Code Online (Sandbox Code Playgroud)\n当我单击“运行文档”按钮时出现此错误:
\n==> rmarkdown::run(\'/home/gxd/R-codes/lesson10/tmp.Rmd\', shiny_args = list(launch.browser = FALSE), auto_reload = FALSE, dir = \'/home/gxd/R-codes/lesson10\', render_args = list(encoding = \'UTF-8\'));\nError in yaml::yaml.load(..., eval.expr = TRUE) : \n Scanner error: while scanning a quoted scalar at line 2, column 8 found unexpected end of stream at line 8, column 15\nCalls: <Anonymous> ... parse_yaml_front_matter -> yaml_load -> <Anonymous>\nExecution halted\nRun Code Online (Sandbox Code Playgroud)\n … r ×6
r-markdown ×4
knitr ×3
data.table ×2
dt ×1
exit ×1
ggplotly ×1
loops ×1
r-glue ×1
shiny ×1