每个数字列的行总和和行总和包含每个数字列的特定字符串作为数据集中的两行?

sum of rows for every numeric column and sum of rows contain a certain string for every numeric column as two rows in the dataset?

请参阅下面的示例数据集。

mydata = data.frame (type =c ("fixed A", "fixed B", "fixed C", "fixed D", "fixed E", "variable A", "variable B", "variable C", "variable D", "variable E"),
                     cost =c(234,34,53,256,45,345,24,26,78,56))

我正在尝试执行以下操作:

  1. 在所有数字列中创建“TOTAL”行,对所有行求和。
  2. 在所有数字列中创建另一个“总变量”行,仅对其中包含单词“变量”的行求和。

对于数字 1,我使用了以下代码:

mydata <- mydata %>%
  adorn_totals("row") %>%
  mutate(across(where(is.numeric),(abs)))

对于数字 2,我尝试使用以下代码过滤掉“Variable”字符串,创建一个总和行,然后将其合并回原始“mydata”数据集,但不断出现以下错误:

x <- mydata %>%
  filter(grepl("variable",type))%>%
    adorn_totals("row") 

错误:adorn_totals(., "row") 中的错误: 尝试重新添加已添加的总计维度

理想情况下,我希望得到以下输出:

     type     cost
    fixed A        234
    fixed B        34
    fixed C        53
    fixed D        256
    fixed E        45
    TOTAL          1151

 variable A        345
 variable B        24
 variable C        26
 variable D        78
 variable E        56
Total Variable     529    

非常感谢任何帮助 - 谢谢!

以下似乎有效。我不喜欢创建多个不同数据集的想法,但这似乎解决了我遇到的错误(Error in adorn_totals(., "row", name = "Total Variable") : trying to re-add 已添加的总计维度)


x <- mydata %>%
  adorn_totals("row") %>%
  mutate(across(where(is.numeric),(abs))) %>%
  filter(grepl("fixed|Total",type))

x1 <- mydata %>%
  filter(grepl("variable",type))%>%
  adorn_totals("row", name = "Total Variable") 

res <- rbind(x,x1)