小编IVI*_*VIM的帖子

在 Rmarkdown 的 for 循环中使用 ggplotly 和 DT

是否可以从循环或函数内部使用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)

r r-markdown dt ggplotly r-glue

3
推荐指数
1
解决办法
615
查看次数

使用knitr在rmarkdown中并排放置两个图像?

在 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或任何其他包。

r knitr r-markdown

3
推荐指数
1
解决办法
1922
查看次数

在 HTML kable 表中打印换行符

使用创建表时,是否有一种方法可以在 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)

在此输入图像描述

这涉及使用 markdown、knitr 和glue 从 data.frame 中自动格式化的歌词书

r knitr r-markdown

2
推荐指数
1
解决办法
2946
查看次数

什么时候以及如何在data.table中使用as.name()vs.get()(例如在循环列中)?

我的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)

r data.table

2
推荐指数
1
解决办法
74
查看次数

通过data.table中的变量列名访问 - 错误:`无法更改'.SD'的锁定绑定值

这与我之前关于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)

loops r data.table

1
推荐指数
1
解决办法
801
查看次数

如何在R中退出(0)?

我在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)

帮助我实现这一目标

r exit

1
推荐指数
1
解决办法
2685
查看次数

yaml::yaml.load(..., eval.expr = TRUE) 中的错误:在 Rmarkdown 中使用闪亮时

我无法用闪亮的方式编译任何 .Rmd 文档。例如,这个五行文档(或任何文档,例如使用 File->New File -> R Markdown ... 创建的文档:Shiny Document)

\n
---\ntitle: "Untitled"\noutput: flexdashboard::flex_dashboard\nruntime: shiny\n---\nEnd of my very short document.\n
Run 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\n
Run Code Online (Sandbox Code Playgroud)\n …

knitr r-markdown shiny

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

r ×6

r-markdown ×4

knitr ×3

data.table ×2

dt ×1

exit ×1

ggplotly ×1

loops ×1

r-glue ×1

shiny ×1