我正在尝试创建一个具有与此类似的摘要统计信息的表(但填写了最小/最大/中位数/均值):
Type
Mass (g) tct tcx tht thx tct
Min
Max
Median
Mean (SD)
Length (mm)
Min
Max
Median
Mean (SD)
Width (mm)
Min
Max
Median
Mean (SD)
甚至是这样:(也有一个宽度列)
Mass (g) Length (mm)
Type Min Max Median Mean (SD) Min Max Median Mean (SD)
tct
tcx
tht
thx
tct
这是我的数据的示例:
dat <- data.frame(
"id" = c(01,02,03,04,05,06,07,08,09,10),
"type" = c("tct", "tcx", "tht", "thx", "tct"),
"mass.g" = c(0.03,0.01,0.04,0.06,0.07,0.03,0.03,0.01,0.04,0.02),
"size.length" = c(8,6,5,6.5,5,5.5,6,7,4,3),
"size.width" = c(2,4,3,4,5,6,3,4,2,1),
)
这是我正在处理的代码,摘自here。
library(qwraps2)
summary <-
list("Mass (g)" =
list(
"Min" = ~ min(.data$mass.g),
"Max" = ~ max(.data$mass.g),
"Median" = ~ median(.data$mass.g)
"Mean (SD)" = ~ qwraps2::mean_sd(.data$mass.g)),
"Length (mm)" =
list(
"Min" = ~ min(.data$size.length),
"Max" = ~ median(.data$size.length),
"Median" = ~ max(.data$size.length),
"Mean (SD)" = ~ qwraps2::mean_sd(.data$size.length)),
"Width (mm)" =
list(
"Min" = ~ min(.data$size.width),
"Max" = ~ median(.data$size.width),
"Median" = ~ max(.data$size.width),
"Mean (SD)" = ~ qwraps2::mean_sd(.data$size.width)
))
summary
by_type <- summary_table(dplyr::group_by(dat, type), summary)
by_type
但是我仍然收到错误消息:“错误:x
必须为公式”
我的最终目标是完成一个类似于以上内容的表格,并将其导出为excel文件或Word文档。
任何帮助将不胜感激。
data.frame
,因为明确定义了每列的模式。dat <-
structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), type = structure(c(1L,
2L, 3L, 4L, 1L, 1L, 2L, 3L, 4L, 1L), class = "factor", .Label = c("tct",
"tcx", "tht", "thx")), mass.g = c(0.03, 0.01, 0.04, 0.06, 0.07,
0.03, 0.03, 0.01, 0.04, 0.02), size.length = c(8, 6, 5, 6.5,
5, 5.5, 6, 7, 4, 3), size.width = c(2, 4, 3, 4, 5, 6, 3, 4, 2,
1)), class = "data.frame", row.names = c(NA, -10L))
加载qwraps软件包并将标记语言设置为“降价”。没有此设置,默认标记为LaTeX。
library(qwraps2) options(qwraps2_markup = "markdown")
与问题发布中的摘要相同,但缺少逗号如Ben评论中所述添加。需要.data
代词,所以summary_table
中的范围界定是正确的。
summary <- list("Mass (g)" = list( "Min" = ~ min(.data$mass.g), "Max" = ~ max(.data$mass.g), "Median" = ~ median(.data$mass.g), "Mean (SD)" = ~ qwraps2::mean_sd(.data$mass.g)), "Length (mm)" = list( "Min" = ~ min(.data$size.length), "Max" = ~ median(.data$size.length), "Median" = ~ max(.data$size.length), "Mean (SD)" = ~ qwraps2::mean_sd(.data$size.length)), "Width (mm)" = list( "Min" = ~ min(.data$size.width), "Max" = ~ median(.data$size.width), "Median" = ~ max(.data$size.width), "Mean (SD)" = ~ qwraps2::mean_sd(.data$size.width) ))
摘要表似乎按预期方式呈现:
by_type <- summary_table(dplyr::group_by(dat, type), summary) by_type #> #> #> | |type: tct (N = 4) |type: tcx (N = 2) |type: tht (N = 2) |type: thx (N = 2) | #> |:----------------------|:------------------|:------------------|:------------------|:------------------| #> |**Mass (g)** | | | | | #> | Min |0.02 |0.01 |0.01 |0.04 | #> | Max |0.07 |0.03 |0.04 |0.06 | #> | Median |0.030 |0.020 |0.025 |0.050 | #> | Mean (SD) |0.04 ± 0.02 |0.02 ± 0.01 |0.03 ± 0.02 |0.05 ± 0.01 | #> |**Length (mm)** | | | | | #> | Min |3 |6 |5 |4 | #> | Max |5.25 |6.00 |6.00 |5.25 | #> | Median |8.0 |6.0 |7.0 |6.5 | #> | Mean (SD) |5.38 ± 2.06 |6.00 ± 0.00 |6.00 ± 1.41 |5.25 ± 1.77 | #> |**Width (mm)** | | | | | #> | Min |1 |3 |3 |2 | #> | Max |3.5 |3.5 |3.5 |3.0 | #> | Median |6 |4 |4 |4 | #> | Mean (SD) |3.50 ± 2.38 |3.50 ± 0.71 |3.50 ± 0.71 |3.00 ± 1.41 |
由reprex package(v0.3.0)在2020-03-01创建