作为此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
方法。