在Excel输出中添加总行

3

我希望在工作表中写入数据框时添加一个总行(与Excel表格中的总行类似)。

以下是我目前的代码(使用openxlsx):

writeDataTable(wb=WB, sheet="Data", x=X, withFilter=F, bandedRows=F, firstColumn=T)

X包含一个数据框,其中有8个字符变量和1个数值变量。因此,总行应仅包含数值行的总计(最好能够像写入工作簿对象时添加Excel总行功能一样,而不是手动添加总行)。
我在StackOverflow和官方openxlsx文档中搜索了解决方案,但无济于事。请建议使用openxlsx的解决方案。
编辑:
添加数据样本:
A  B  C  D  E  F  G  H  I
a  b  s  r  t  i  s  5  j
f  d  t  y  d  r  s  9  s
w  s  y  s  u  c  k  8  f

在总行之后:
    A  B  C  D  E  F  G  H  I
    a  b  s  r  t  i  s  5  j
    f  d  t  y  d  r  s  9  s
    w  s  y  s  u  c  k  8  f
    na na na na na na na 22 na

2
请先提出对问题的改进建议,而不是直接进行负面投票。 - Arani
2个回答

1

假设您的数据存储在名为df的数据框中:

df <- read.table(text = 
    "A  B  C  D  E  F  G  H  I
    a  b  s  r  t  i  s  5  j
    f  d  t  y  d  r  s  9  s
    w  s  y  s  u  c  k  8  f", 
                 header = TRUE,
                 stringsAsFactors = FALSE)

您可以使用lapply创建一行。
totals <- lapply(df, function(col) {
  ifelse(!any(!is.numeric(col)), sum(col), NA)
})

将其添加到df中,使用rbind()函数。
df <- rbind(df, totals)

head(df)
     A    B    C    D    E    F    G  H    I
1    a    b    s    r    t    i    s  5    j
2    f    d    t    y    d    r    s  9    s
3    w    s    y    s    u    c    k  8    f
4 <NA> <NA> <NA> <NA> <NA> <NA> <NA> 22 <NA>

1
library(janitor)
adorn_totals(df, "row")

#>      A B C D E F G  H I
#>      a b s r t i s  5 j
#>      f d t y d r s  9 s
#>      w s y s u c k  8 f
#>  Total - - - - - - 22 -

如果您更喜欢在字符列中使用空格而不是-,则可以指定fill = ""fill = NA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接