小编jl7*_*795的帖子

旋转数据框以保留 R 中的列标题和子标题

我正在尝试旋转一个包含标题和副标题的表格,以便标题进入“日期”列,并且副标题是两列而不是重复。

这是我的数据的示例。

这是使用 生成的dput(),因此在原始 Excel 文件中,每个日期都跨越两个子标题(“蓝色”和“绿色”),在 R 中,这些空白单元格被重新命名为 X.1、X.2、 ETC。

table <- "          X    X.1 X02.Jul.12   X.2 X03.Jul.12   X.3 X04.Jul.12   X.4
1  category number       blue green       blue green       blue green
2         G      1          1     0          1     0          1     0
3         G      2          2    99          2    99          1    99
4         G      3          1     1          1    99          1    99
5         G      4          1     1          1     1          2    99
6         G      5          1     0          1     0          1    99
7         G      6 …
Run Code Online (Sandbox Code Playgroud)

pivot pivot-table r tidyr data-cleaning

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

使用 PNG/JPEG 图像创建多面板图形

问题:

我想使用 PNG 或 JPEG 图像制作多面板图形。这些图像不是在 R 中创建的,但我想在 R 中将它们拼凑在一起以形成一个图形。所有图像的尺寸/尺寸相同。

我尝试过的:

library(png)

img1 <- readPNG("filepath/img1.png")
img2 <- readPNG("filepath/img2.png")

library(patchwork)

patch <- img1 + img2
patch
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到以下错误:

[ reached getOption("max.print") -- omitted 3 matrix slice(s) ]
Run Code Online (Sandbox Code Playgroud)

我多次增加了最大打印量(达到高得离谱):

options(maxprint = 1000000000000)
Run Code Online (Sandbox Code Playgroud)

但仍然遇到同样的错误。

然后我尝试使用以下方法将每个图像制作成 ggplot (没有点):

library(ggplot2)

img1plot <- ggplot() + 
background_image(img1) +
theme(plot.margin = margin(t=1, l=1, r=1, b=1, unit = "cm"))
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

Error in background_image(d311) : 
  could not find function "background_image"
Run Code Online (Sandbox Code Playgroud)

有没有另一种方法可以在 R 中将图像拼凑在一起以制作图形?

编辑:

根据@davidnortes的评论,我尝试了以下方法:

p1 <- ggplot2::annotation_custom(grid::rasterGrob(img1,
                                            width=ggplot2::unit(1,"npc"),
                                            height=ggplot2::unit(1,"npc")),
                           -Inf, …
Run Code Online (Sandbox Code Playgroud)

png jpeg r image ggplot2

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

在dplyr summarise()中按组计算上下置信区间

我正在尝试制作一个表格,显示N(观察次数)、百分比频率(答案 > 0)以及百分比频率的上下置信区间,我想按类型对其进行分组。

数据示例

dat <- data.frame(
  "type" = c("B","B","A","B","A","A","B","A","A","B","A","A","A","B","B","B"),
  "num" = c(3,0,0,9,6,0,4,1,1,5,6,1,3,0,0,0)
)
Run Code Online (Sandbox Code Playgroud)

预期输出(已填充值):

Type   N   Percent   Lower 95% CI   Upper 95% CI
A
B
Run Code Online (Sandbox Code Playgroud)

试图

library(dplyr)
library(qwraps2)

table<-dat %>%
  group_by(type) %>%
  summarise(N=n(),
            mean.ci = mean_ci(dat$num),
            "Percent"=n_perc(num > 0))
Run Code Online (Sandbox Code Playgroud)

这有助于获得 N 和百分比频率,但在我添加 mean_ci 时返回错误:“列的长度必须为 1(汇总值),而不是 3”

我试过的第二个代码,在这里找到:

table2<-dat %>%
  group_by(type) %>%
  summarise(N.num=n(),
            mean.num = mean(dat$num),
            sd.num = sd(dat$num),
            "Percent"=n_perc(num > 0)) %>%
  mutate(se.num = sd.num / sqrt(N.num),
         lower.ci = 100*(mean.num - qt(1 - (0.05 …
Run Code Online (Sandbox Code Playgroud)

r group-summaries dplyr summarize qwraps2

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