Как рассчитать пропорцию в г? - PullRequest
1 голос
/ 11 мая 2019

У меня есть фрейм данных, и я хочу рассчитать пропорцию.таблица выглядит следующим образом:

                Eligible        Immunised
 Auckland          1778            1426
 Bay of plenty     1194            802
 Canterbury        3461            2731

Я хочу знать соотношение всех иммунизированных районов.Я думаю, что мне нужно сложить столбец, отвечающий критериям, и столбец с иммунизированным значением, а затем использовать иммунизированное значение, деленное на допустимое.Но я не слишком уверен, как сделать код.Если кто-то может помочь, было бы здорово.Спасибо !!

Ответы [ 4 ]

1 голос
/ 11 мая 2019

Просто разделите оба столбца:

df$Proportion <- df$Immunised / df$Eligible

df
                Eligible        Immunised         Proportion
 Auckland          1778            1426            0.8020247
 Bay of plenty     1194            802             0.6716918
 Canterbury        3461            2731            0.7890783
1 голос
/ 11 мая 2019

Я не совсем уверен, что вы хотите, но, скорее всего, один из них, где m определяется воспроизводимо в примечании в конце:

prop.table(m)
prop.table(m, 1)
prop.table(m, 2)
prop.table(colSums(m))
prop.table(rowSums(m))

Примечание

В следующий раз, пожалуйста, предоставьте ваш вклад в воспроизводимой форме. Я сделал это для тебя на этот раз:

Lines <- "Eligible        Immunised
Auckland           1778            1426
Bay of plenty      1194            802
Canterbury         3461            2731"
L <- readLines(textConnection(Lines))
DF <- read.csv(text = gsub(" {5,}", ",", L), as.is = TRUE, strip.white = TRUE)
m <- as.matrix(DF)
0 голосов
/ 11 мая 2019

Так как вы хотите, чтобы соотношение суммы Immunised столбца с Eligible, вы можете сделать

sum(df$Immunised)/sum(df$Eligible)
#[1] 0.770869
0 голосов
/ 11 мая 2019

Полагаю, что ОП хочет именно это:

Данные (data.frame x):

dput( x )
structure(list(Region = c("Auckland", "Bay of plenty", "Canterbury"
), Eligible = c(1778L, 1194L, 3461L), Immunised = c(1426L, 802L, 
2731L)), .Names = c("Region", "Eligible", "Immunised"), 
class = "data.frame", row.names = c(NA, -3L))

Часть proportion - это просто новый столбец сИммунизированные в процентах от Правомочных:

x$proportion = x$Immunised / x$Eligible
> x
         Region Eligible Immunised proportion
1      Auckland     1778      1426  0.8020247
2 Bay of plenty     1194       802  0.6716918
3    Canterbury     3461      2731  0.7890783

Это очень базовый, но, похоже, вопрос в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...