小编Mic*_*Luu的帖子

如何以编程方式在四开本中生成选项卡集面板?

我在下面提供了一个可重现的小示例。我想为命名 list 中的每个 ggplot 对象在四开中生成选项卡plots。下面的四开文档将在其自己的二级标题中呈现图形,但不会按预期呈现在选项卡中。

---
title: "Untitled"
format: html
---

```{r}
library(tidyverse)

data <- iris %>% as_tibble()

plots <- data %>%
  group_nest(Species) %>% 
  deframe() %>% 
  map(., ~ {
    ggplot(.x, aes(x = Sepal.Length, y = Sepal.Width)) + 
      geom_point()
  })

```

# Iris Plots 

::: {.panel-tabset}
```{r}
#| column: screen
#| fig-width: 12
#| fig-height: 8
#| fig-align: center
#| results: asis

iwalk(plots, ~ {
  cat('## ', .y, '\n\n')
  
  print(.x)
  
  cat('\n\n')
  
})

```

:::
Run Code Online (Sandbox Code Playgroud)

当块选项(除 results:asis 之外的所有选项)被删除时,文档将按预期正确渲染选项卡内的绘图。

# Iris …
Run Code Online (Sandbox Code Playgroud)

r quarto

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

与Survminer的生存剧情 - 空白的剧情

我目前遇到的问题是在幸存者的rmarkdown块输出中出现空白图.请看下面的图片.

在此输入图像描述

它使输出变得困难,因为它在尝试创建报告时包含巨大的空白空间.

在此输入图像描述

我一直在调查这个问题,我已经把它缩小到与这个打印"新页面"的论点有关 -

在此输入图像描述

我的问题是 - 有谁可以解释这里到底发生了什么? - 为什么有一个'空白'情节,我怎么能不显示它? - 当我有第一个情节的newpage = F和第二个情节的新页= T没有显示空白页时,到底发生了什么? - 有没有其他方法没有第一个空白图显示?

谢谢!

编辑:

可重复的例子 -

require(survminer)
require(survival)

Data <- data.frame(
X = sample(1:30),
Y = sample(c(1,0), 30, replace = TRUE),
Z = sample(c(1,0), 30, replace = TRUE)
)

ggsurvplot(
 survfit(Surv(Data$X, Data$Y) ~ Data$Z),
 risk.table = T,
 break.time.by = 12,
 risk.table.fontsize = 3,
 font.tickslab = 10,
 font.x = 11,
 xlab = 'Time (Months)',
 font.y = 11,
 font.main = 11,
 legend = c(0.8, .9),
 legend.title = '', …
Run Code Online (Sandbox Code Playgroud)

plot r r-markdown survival-analysis

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

计算具有重叠和日期范围间隙的独特日期

Group       Start            End             Days
A           5/12/2015        5/14/2015       3
A           5/12/2015        5/14/2015       3
B           1/1/2015         1/3/2015        3
B           1/1/2015         1/3/2015        3
H           1/8/2015         1/9/2015        2
H           1/8/2015         1/9/2015        2
H           1/13/2015        1/15/2015       3
H           1/7/2015         1/17/2015       3
H           1/12/2015        1/22/2015       7
Run Code Online (Sandbox Code Playgroud)

我上面附上了我的数据集样本.我正在尝试计算R中每个组的唯一天数.对于一些观察,它非常简单,即A和B.然而,有些组具有不同的天数重叠以及日期范围中的间隙,即H.

无论如何,我可以总结一下R中每个组的唯一天数(没有重叠并说明差距)?即A和B将分别返回3天​​,H将返回11天.

Group   Count
A       3
B       3
H       16
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是使用dplyr和summaryrize函数,但是我无法绕过任何解决方案.任何帮助表示赞赏!谢谢

r date dplyr

6
推荐指数
2
解决办法
961
查看次数

svychisq出错 - '对比可以应用于2级或更高级别的因素'

误差在contrasts<-(*tmp*,值= contr.funs [1 + ISOF [NN]]):对比度可以只应用于因素有2倍或更多的水平

每当我尝试在调查包中使用svychisq函数时,我都会收到此错误.但是当我使用svytable函数时,该函数可以正常工作.该错误涉及具有2级或更多级别的因子--DIED变量是具有2级,0和1的因子.

> svytable(~COHORT+DIED, design=df_srvy)

  DIED
COHORT         0         1
  1997 26726.584  1647.118
  2000 26958.912  1628.692
  2003 30248.533  1599.094
  2006 36602.173  1586.526
  2009 44004.732  2531.597
  2012 56037.874  2766.386

> svychisq(~COHORT+DIED, design=df_srvy)
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
contrasts can be applied only to factors with 2 or more levels
Run Code Online (Sandbox Code Playgroud)

编辑:

这是问题的一个小子集示例

sample <- structure(list(DISCWT = c(1.36973, 1.4144, 1.41222, 1.41222, 
1.4144, 1.4144, 1.41222, 1.41222, 1.4144, 1.41222, 1.41222, 1.41222, 
1.41222, 1.4144, …
Run Code Online (Sandbox Code Playgroud)

r survey

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

如何通过 R 中的参数化 Quarto 文档将 Quarto R 包的逻辑参数传递到 knitr 块选项

我在下面提供了一个最小的可重现示例。我目前正在尝试使用 R quarto 包将逻辑参数传递到 Quarto 块选项中。

下面是四开文档,我在其中创建了 2 个参数 、show_codeshow_plot

---
title: "Untitled"
format: html
params:
  show_code: TRUE
  show_plot: TRUE
---

```{r, echo=params$show_code}
summary(cars)
```

```{r, include=params$show_plot}
plot(pressure)
```
Run Code Online (Sandbox Code Playgroud)

该文档将通过 R studio 中的渲染按钮正确渲染。

但是,当尝试通过 R quarto 包中的函数渲染此文档时quarto_render(),将会失败。

library(quarto)

quarto::quarto_render(
  input = 'qmd_document.qmd',
  output_format = 'html',
  output_file = 'qmd_document_with_code.html',
  execute_params = list(show_plot = TRUE,
                        show_code = TRUE)
)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

看起来,控制台中的块 1 和块 2 都yes传递了一个字符,而不是逻辑TRUE或。FALSE

如何通过 正确地将逻辑字符传递给参数化的四开报表块选项quarto_render()

r quarto

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

如何在dplyr中使用相同条件在多个变量中进行子集化

我有一个序列变量列表,我想知道在变量序列中是否有一个简单的dplyr子集化方法.

例如,我有以下变量:

DX1 DX2 DX3 DX4 DX5

如果这些变量中的任何一个包含以下字符串'7586',我想要我的数据的子集.

从单个变量子集我将执行以下操作:

filter(df, DX1 == '7586')
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是:

filter(df, DX1 == '7586' | DX2 == '7586' | DX3 == '7586' | DX4 == '7586' | DX5 == '7586')
Run Code Online (Sandbox Code Playgroud)

我的实际数据集包含DX1-DX25,编写起来非常繁琐.

有没有简化上述方法的方法?

一些东西

filter(df, DX1-25 == '7586')
Run Code Online (Sandbox Code Playgroud)

谢谢

r subset filter dplyr

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

标签 统计

r ×6

dplyr ×2

quarto ×2

date ×1

filter ×1

plot ×1

r-markdown ×1

subset ×1

survey ×1

survival-analysis ×1