#r #loops
Вопрос:
У меня есть следующая проблема:
Фрейм данных, содержащий данные за период с июля по август. Соответствующими данными будут возраст и номер выборки для каждой записи. Для каждого месяца мне нужно выбрать подмножество номеров выборок на основе возрастного диапазона. Возрастные диапазоны остаются неизменными для каждого месяца, но подмножество номеров выборок будет меняться в зависимости от месяца.
Месяц июль Подмножество номеров выборки:
Возрастной Диапазон | Выберите записи с номерами образцов |
---|---|
12-17 | 1:100 |
18-49 | 1:50 |
50-64 | 1:60 |
65 | 1:60 |
Подмножество номеров выборки за август:
Возрастной Диапазон | Выберите записи с номерами образцов |
---|---|
12-17 | 1:100 |
18-49 | 1:10 |
50-64 | 1:15 |
65 | 1:10 |
Подмножество номеров выборки за сентябрь месяц:
Возрастной Диапазон | Выберите записи с номерами образцов |
---|---|
12-17 | 1:100 |
18-49 | 1:20 |
50-64 | 1:20 |
65 | 1:15 |
Воспроизводимые данные:
set.seed(321) Month lt;- sample(7:9, 100, replace = TRUE) Age lt;- sample(12:100, 100, replace = TRUE) Sample_num lt;- sample(1:100, 100, replace = TRUE) df lt;- data.frame(Month, Age, Sample_num)
Окончательные результаты:
df2 lt;- subset(df, Month %in% c(7)) df.12.17.jul lt;- subset(df2, Age %in% c(12:17)) df.18.49.jul lt;- subset(df2, Age %in% c(18:49)) df.18.49.jul lt;- subset(df.18.49.jul, Sample_num %in% c(1:50)) df.50.64.jul lt;- subset(df2, Age %in% c(50:64)) df.50.64.jul lt;- subset(df.50.64.jul, Sample_num %in% c(1:60)) df.60.plus.jul lt;- subset(df2, Age gt;= 65) df.60.plus.jul lt;- subset(df.60.plus.jul, Sample_num %in% c(1:60)) df.jul lt;- rbind(df.12.17.jul, df.18.49.jul, df.50.64.jul, df.60.plus.jul) df3 lt;- subset(df, Month %in% c(8)) df.12.17.aug lt;- subset(df3, Age %in% c(12:17)) df.18.49.aug lt;- subset(df3, Age %in% c(18:49)) df.18.49.aug lt;- subset(df.18.49.aug, Sample_num %in% c(1:10)) df.50.64.aug lt;- subset(df3, Age %in% c(50:64)) df.50.64.aug lt;- subset(df.50.64.aug, Sample_num %in% c(1:15)) df.60.plus.aug lt;- subset(df3, Age gt;= 65) df.60.plus.aug lt;- subset(df.60.plus.aug, Sample_num %in% c(1:10)) df.aug lt;- rbind(df.12.17.aug, df.18.49.aug, df.50.64.aug, df.60.plus.aug) df4 lt;- subset(df, Month %in% c(9)) df.12.17.sep lt;- subset(df4, Age %in% c(12:17)) df.18.49.sep lt;- subset(df4, Age %in% c(18:49)) df.18.49.sep lt;- subset(df.18.49.sep, Sample_num %in% c(1:20)) df.50.64.sep lt;- subset(df4, Age %in% c(50:64)) df.50.64.sep lt;- subset(df.50.64.sep, Sample_num %in% c(1:20)) df.60.plus.sep lt;- subset(df4, Age gt;= 65) df.60.plus.sep lt;- subset(df.60.plus.sep, Sample_num %in% c(1:15)) df.sep lt;- rbind(df.12.17.sep, df.18.49.sep, df.50.64.sep, df.60.plus.sep)
Каков был бы хороший способ перебрать этот фрейм данных вместо того, чтобы иметь весь избыточный код?
Спасибо — А