将总计行和/或列追加到R中的data.frame
在此之前,我使用了将总计行和/或列追加到R中的data.frame,r,dplyr,data.table,tidyr,janitor,R,Dplyr,Data.table,Tidyr,Janitor,在此之前,我使用了carditor包中的addorn\u totals函数将行和列总计添加到data.frame中。data.frame的内容是count,因此这很好: RegionSize size KUALA LUMPUR OTHERS PENANG SELANGOR DARUL EHSAN TOTAL tiny 20 3 1 0 24 small 164 120
carditor
包中的addorn\u totals
函数将行和列总计添加到data.frame中。data.frame的内容是count,因此这很好:
RegionSize
size KUALA LUMPUR OTHERS PENANG SELANGOR DARUL EHSAN TOTAL
tiny 20 3 1 0 24
small 164 120 20 90 394
medium 100 69 0 0 169
big 0 293 106 0 399
TOTAL 284 485 127 90 986
现在我正在研究data.frame,其中每个单元格都是一个比例。我需要总计行和列,但在这种情况下不能使用addorn\u totals
,因为操作顺序返回错误的值
因此,我有三个单独的表:
Summary
size KUALA LUMPUR OTHERS PENANG SELANGOR DARUL EHSAN
1 tiny 0.000 0.000 0.000 0.000
2 small 435.344 245.598 333.317 272.342
3 medium 187.874 9656.649 0.000 0.000
4 big 0.000 116.861 138.366 0.000
RegionTotals
experience region1
1: 156.523 PENANG
2: 272.342 SELANGOR DARUL EHSAN
3: 343.998 KUALA LUMPUR
4: 296.601 OTHERS
SizeTotals
experience size
1: 0.000 tiny
2: 348.692 small
3: 136.207 big
4: 223.415 medium
overallTotal
experience
1: 276.613
考虑到区域和大小可能会发生变化,我如何实现以下结果?例如,有时根据我获得的数据,我不会有区域“其他”或大小“大”。我怎样才能做到这一点:
Summary
size KUALA LUMPUR OTHERS PENANG SELANGOR DARUL EHSAN TOTAL
1 tiny 0.000 0.000 0.000 0.000 0.000
2 small 435.344 245.598 333.317 272.342 348.692
3 medium 187.874 9656.649 0.000 0.000 223.415
4 big 0.000 116.861 138.366 0.000 136.207
5. TOTAL 343.998 296.601 156.523 272.342 276.613
您可以使用rbind向数据框中添加行,例如:
total <- c(size="TOTAL", apply(x[,-1], FUN=sum, MAR=2)
rbind(x, total)
total您可以使用rbind向数据框中添加一行,例如:
total <- c(size="TOTAL", apply(x[,-1], FUN=sum, MAR=2)
rbind(x, total)
总计