R gt汇总\u行比率总计行
我正在使用这个很棒的软件包帮助在R gt汇总\u行比率总计行,r,gt,R,Gt,我正在使用这个很棒的软件包帮助在R中制作漂亮的表格。我真的很喜欢用它来生成总列,但我正在努力尝试做任何事情,而不仅仅是简单的求和或平均值。我需要为我的几个专栏做一些更像SUMPRODUCT的事情。假设我有以下数据。它有一个denom列,我想用它除以几个分子 library(dplyr) library(gt) set.seed(1) df <- data.frame(some_letter = sample(letters, size = 10, replace = FALSE),
R
中制作漂亮的表格。我真的很喜欢用它来生成总列,但我正在努力尝试做任何事情,而不仅仅是简单的求和
或平均值
。我需要为我的几个专栏做一些更像SUMPRODUCT的事情。假设我有以下数据。它有一个denom
列,我想用它除以几个分子
library(dplyr)
library(gt)
set.seed(1)
df <- data.frame(some_letter = sample(letters, size = 10, replace = FALSE),
denom = sample(1:100, size = 10, replace = FALSE),
num1 = sample(100:200, size = 10, replace = FALSE),
num2 = sample(100:200, size = 10, replace = FALSE)) %>%
mutate(rat1 = round(num1 / denom, 2),
rat2 = round(num2 / denom, 2))
some_letter denom num1 num2 rat1 rat2
1 y 54 188 119 3.48 2.20
2 d 74 143 127 1.93 1.72
3 g 7 178 200 25.43 28.57
4 a 73 132 143 1.81 1.96
5 b 79 183 186 2.32 2.35
6 k 85 134 169 1.58 1.99
7 n 37 169 139 4.57 3.76
8 r 89 173 197 1.94 2.21
9 w 94 141 124 1.50 1.32
10 j 34 137 195 4.03 5.74
对于其他专栏,我尝试了以下几点,但都无济于事
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"),
columns = vars(denom, num1, num2)) %>%
summary_rows(fns = list(TOTAL = ~sum(.) / sum(denom)), columns = vars(rat1, rat2))
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"),
columns = vars(denom, num1, num2)) %>%
summary_rows(fns = list(TOTAL = sum(.) / sum(denom)), columns = vars(rat1, rat2))
我知道我可以单独计算,然后把它放到底部,但是
summary\u rows
函数提供了非常好的格式,而不需要做任何额外的工作。这个解决方案太糟糕了,应该是5个哈伊尔玛丽和2个我们的父亲,但是它很有效
您可以单独计算这些比率,然后将它们放入“fns
”调用中。看起来它不能只取一个双精度,所以你必须除以和(1)
。丑陋是肯定的,也许可以清理一点功能,但它似乎工作
r1_total <- sum(df$num1) / sum(df$denom)
r2_total <- sum(df$num2) / sum(df$denom)
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"),
columns = vars(denom, num1, num2)) %>%
summary_rows(fns = list(TOTAL = ~ r1_total / sum(1) ), columns = vars(rat1)) %>%
summary_rows(fns = list(TOTAL = ~ r2_total / sum(1) ), columns = vars(rat2))
r1\u总计%
汇总行(fns=list(TOTAL=~r1\u TOTAL/sum(1)),列=vars(rat1))%>%
汇总行(fns=list(TOTAL=~r2\u TOTAL/sum(1)),列=vars(rat2))
我也遇到了同样的问题,除了整理代码将
r1\u total
和r2\u total
传递到summary\u rows()
函数的方式外,没有找到更好的解决方案:
r1_total <- sum(df$num1) / sum(df$denom)
r2_total <- sum(df$num2) / sum(df$denom)
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"), columns = vars(denom, num1, num2)) %>%
summary_rows(fns = list(TOTAL = ~ c(r1_total), columns = vars(rat1)) %>%
summary_rows(fns = list(TOTAL = ~ c(r2_total), columns = vars(rat2))
r1_total <- sum(df$num1) / sum(df$denom)
r2_total <- sum(df$num2) / sum(df$denom)
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"), columns = vars(denom, num1, num2)) %>%
summary_rows(fns = list(TOTAL = ~ c(r1_total), columns = vars(rat1)) %>%
summary_rows(fns = list(TOTAL = ~ c(r2_total), columns = vars(rat2))
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"), columns = vars(denom, num1, num2)) %>%
summary_rows(fns = list(TOTAL = ~ sum(df$num1) / sum(df$denom) ), columns = vars(rat1)) %>%
summary_rows(fns = list(TOTAL = ~ sum(df$num2) / sum(df$denom) ), columns = vars(rat2))