r - 如何在R中的数据框中添加最后一行作为总计
问题描述
我在 R 中有以下提到的列:
structure(list(product = c("-", "A", "B", "CC", "XA", "RD",
"IS", "FD"), count.1 = c(969, 324, 11, 161, 185, 79, 231, 9),
Per.1 = c(49.21, 16.46, 0.56, 8.18, 9.4, 4.01, 11.73,
0.46), remark = c("F2", "", "F1", "NA", "K4", "-",
"-", "-"), count.2 = c("1708", "215", "35", "9", "2", "-",
"-", "-"), per.2 = c(86.74, 10.92, 1.78, 0.46, 0.1,
NA, NA, NA), status = c("Go", "hold", "-", "-", "-", "-", "-",
"-"), count.3 = c("1717", "200", "52", "-", "-", "-", "-",
"-"), per.3 = c(87.2, 10.16, 2.64, NA, NA, NA, NA,
NA)), .Names = c("product", "count.1", "per.1", "remark",
"count.2", "per.2", "status", "count.3", "per.3"
), row.names = c(NA, -8L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x185b2f8>)
我想从第 2 列到第 9 列求和,并%
在第 3,6 列和第 9 列中添加符号。
请求输出如:
product count.1 per.1 remark count.1 per.2 Status count.3 per.3
- 969 49.21% F2 1708 86.74% Go 1717 87.20%
A 324 16.46% 215 10.92% Hold 200 10.16%
B 11 0.56% F1 35 1.78% - 52 2.64%
CC 161 8.18% NA 9 0.46% - - NA
XA 185 9.40% K4 2 0.10% - - NA
RD 79 4.01% - - NA - - NA
IS 231 11.73% - - NA - - NA
RD 9 0.46% - - NA - - NA
Total 1969 100.01% - 1969 100.00% - 1969 100.00%
解决方案
在每个百分比字段中添加百分比的解决方案。
total_df <- d %>% mutate_at(vars(2:3,5:6,8:9), as.numeric) %>% select_if(is.numeric) %>%
summarise_all(sum, na.rm =T) %>% mutate_all(as.character) %>%
mutate(product = "Total", remark = '-',status ='-') %>%
select(names(d))
d %>% mutate_all(as.character) %>% bind_rows(total_df) %>%
mutate_at(vars(starts_with("per")), ~paste0(., '%'))
输出
product count.1 per.1 remark count.2 per.2 status count.3 per.3
1 - 969 49.21% F2 1708 86.74% Go 1717 87.2%
2 A 324 16.46% 215 10.92% hold 200 10.16%
3 B 11 0.56% F1 35 1.78% - 52 2.64%
4 CC 161 8.18% NA 9 0.46% - - NA%
5 XA 185 9.4% K4 2 0.1% - - NA%
6 RD 79 4.01% - - NA% - - NA%
7 IS 231 11.73% - - NA% - - NA%
8 FD 9 0.46% - - NA% - - NA%
9 Total 1969 100.01% - 1969 100% - 1969 100%
推荐阅读
- python - 通过关联表查询时如何展平 SQLAlchemy 结果
- swift - Xcode 12 - 当 Objective-C 代码使用 Swift 类时项目内部的依赖循环
- javascript - Google Ads 报告 API 获取国家/地区细分
- webrtc - 在 WebRTC 中,谁应该向谁提供 ICE 候选人?
- sql - 在 SQL 中创建多边形
- angular - Stripe JS Angular,无法在paymentRequest.on(“paymentMethod”)中调用方法
- rshiny - 在 RShiny 中固定来自用户的静态数据
- entity-framework-core - 将 Entity Framework Core 与 Net Topology Suite 一起使用时调整 CurvePolygon SQL 空间类型
- angular - 将 Angular 应用发布为工件,发布路径是什么?
- r - 如何计算数据框中每个变量值组合发生的时间?