使用ddply函数获取百分比

问题描述 投票:0回答:2

我想将百分比分别分为韩国和台湾。我不知道用ddply功能单独计算百分比。

plot<-ddply(
    data, 
    c("Country", "Here.is.usually.much.garbage.distributed."),
    summarise,
    n=length(Here.is.usually.much.garbage.distributed.),
    percent=((n/sum(plot$n))*100)
)

有人知道该怎么做吗?

enter image description here

r plyr
2个回答
1
投票

考虑切换到dplyr而不是plyr。尝试使用:

library(dplyr)

data %>% 
  group_by(Country, `Here.is.usually.much.garbage.distributed.`) %>% 
  summarise(n = n()) %>%
  mutate(percent = n/sum(n) * 100)

0
投票

我们可以使用data.table

library(data.table)
setDT(data)[, .(N = .N), by = .(Country, `Here.is.usually.much.garbage.distributed.`)][,
         percent := N/sum(N) * 100][]

使用ddply,我们得到计数并在外面计算百分比

library(plyr)
out <-ddply(
        data, 
           c("Country", "Here.is.usually.much.garbage.distributed."),
         summarise,
n=length(`Here.is.usually.much.garbage.distributed.`)
 )
out$perc <- out$n/sum(out$n) * 100
© www.soinside.com 2019 - 2024. All rights reserved.