Получить процент с функцией ddply - PullRequest
0 голосов
/ 10 января 2020

Я хочу разделить проценты на Корею и Тайвань по отдельности. Я не имею ни малейшего представления, чтобы рассчитать процент с 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

Ответы [ 2 ]

1 голос
/ 10 января 2020

Рассмотрите возможность переключения на dplyr вместо plyr. Попробуйте использовать:

library(dplyr)

data %>% 
  group_by(Country, `Here.is.usually.much.garbage.distributed.`) %>% 
  summarise(n = n()) %>%
  mutate(percent = n/sum(n) * 100)
0 голосов
/ 10 января 2020

Мы можем использовать 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
...