r - 如何在 R 数据框中的最后一行添加总列,其值为 %
问题描述
我在 R 中有以下提到的数据框:
country product profit_perc
USA 100 15.2%
Canada 10 10.25%
Russia 50 19.72%
Japan 30 25.23%
所需数据框:
country product profit_perc
USA 100 15.2%
Canada 10 10.25%
Russia 50 19.72%
Japan 30 25.23%
Total 190 70.4%
解决方案
library(data.table)
d <- read.table(text = "
country product profit_perc
USA 100 15.2
Canada 10 10.25
Russia 50 19.72
Japan 30 25.23", header=T
)
d <- setDT(d)
vars <- c("product", "profit_perc")
d <- rbindlist(list(
d,
d[, lapply(.SD, sum), .SDcols=vars ][,country := "Tot"]
), use.names = T)
country product profit_perc
1: USA 100 15.20
2: Canada 10 10.25
3: Russia 50 19.72
4: Japan 30 25.23
5: Tot 190 70.40
您也可以直接传递列的索引:
d <- rbindlist(list(
d,
d[, lapply(.SD, sum), .SDcols=c(2:3) ][,country := "Tot"]
), use.names = T)
推荐阅读
- wordpress - 从自定义页面调用时,Woocommerce 产品档案不显示任何内容
- kdb - 创建新目录 kdb+
- git - 您可以使用 Azure Devops Server repos 中的 ssh 进行 git clone 吗?
- javascript - node.js和python中相同问题解决方案的不同结果
- javascript - 在套件脚本 2.0 中加载保存的搜索时 search.run().getRange 出错
- html - Chrome浏览器计算错误的元素宽度
- c# - GMap.NET 我怎样才能做出准确的路由?
- powershell - PowerShell获取包含IP地址的行并将所有这些行保存在另一个文件中
- c# - .Net core 3.x Keyless Entity Types 避免创建表
- shopify - 将元字段暴露给 Storefront API 错误