按列总计计算百分比,而不是按分组变量计算

时间:2017-03-20 15:30:24

标签: r data.table

作为此question的后续内容,如果您希望计算的百分比不是作为组内的共享,而是作为列总数的一部分,那么最好的方法是什么。

d <- read.table(text="Fuel     Year   Region   Count
Gasoline 2013       GE  169600
                Diesel   2013       GE   46790
                Hybrid   2013       GE    2268
                Electric 2013       GE      85
                Other    2013       GE     532
                Gasoline 2013       VS  149232
                Diesel   2013       VS   50591
                Hybrid   2013       VS    1028
                Electric 2013       VS     268
                Other    2013       VS     261", header = TRUE)


d <- data.table(d)

然后我想计算燃料的份额而不管地区如何。所以在第一步中我想有这个:

d[, .(Car.Total = sum(Count)), by = "Fuel"]

是否有更好的方法来计算百分比:

d[, .(Car.Total = sum(Count)
    , Car.Share = sum(Count)/sum(d[,Count])), by = "Fuel"]

这似乎效率很低,但有效。有没有更有效的方法只使用data.table方法。

0 个答案:

没有答案
相关问题