Добавить столбец к фрейму данных с вычислением цикла из другого фрейма данных - PullRequest
0 голосов
/ 07 июня 2019

У меня есть два набора данных, один на индивидуальном уровне и один на школьном уровне.Я хотел бы рассчитать долю боевых действий в каждой школе, используя цикл (так как у меня> 100 школ).

Текущий код:

for (i in levels(df$school_id)) {
     school <- subset(df, school_id == i)
     number_students <- nrow(school)
     prop <- (sum(school$fight_binary, na.rm = TRUE))/number_students
     df$proportion_fight[df$school_id == i] <- prop
}

Сначала я попытался инициализировать новый столбец, но когда я запускаю этот цикл, ничего не происходит.

Вот некоторые примеры данных

ИНДИВИДУАЛЬНЫЙ УРОВЕНЬ:

student_id   school_id   ever_fight
         1           2            1
         2           3            0
         3           1            1
         4           1            1
         5           2            0
         6           2            0
         7           2            0
         8           2            0
         9           3            1
        10           1            0
        11           3            1
        12           3            1
        13           3            1
        14           3            1
        15           1            0
        16           2            0
        17           1            0
        18           1            0
        19           1            0
        20           1            0

ШКОЛЬНЫЙ УРОВЕНЬ (необходимо заполнить второй столбец данными сверху):

 school_id    proportion_fight
         1
         2
         3

1 Ответ

0 голосов
/ 07 июня 2019

Мы можем использовать группу по mean

library(dplyr)
df1 %>% 
     group_by(school_id) %>% 
     summarise(proportion_flight = mean(ever_flight))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...