Свяжите гендерное распределение с возрастным распределением в R

Я пытаюсь создать data.frame, в котором я добавил долю разных полов в возрастном распределении пропорционально возрастному распределению.

У меня есть следующие две таблицы данных.


 date time age confirmed deceased
   1: 2020-03-02    0  0s        32        0
   2: 2020-03-02    0 10s       169        0
   3: 2020-03-02    0 20s      1235        0
   4: 2020-03-02    0 30s       506        1
   5: 2020-03-02    0 40s       633        1
  ---                                       
1085: 2020-06-30    0 40s      1681        3
1086: 2020-06-30    0 50s      2286       15
1087: 2020-06-30    0 60s      1668       41
1088: 2020-06-30    0 70s       850       82
1089: 2020-06-30    0 80s       556      139


date time    sex confirmed deceased
  1: 2020-03-02    0   male      1591       13
  2: 2020-03-02    0 female      2621        9
  3: 2020-03-03    0   male      1810       16
  4: 2020-03-03    0 female      3002       12
  5: 2020-03-04    0   male      1996       20
 ---                                          
238: 2020-06-28    0 female      7265      131
239: 2020-06-29    0   male      5470      151
240: 2020-06-29    0 female      7287      131
241: 2020-06-30    0   male      5495      151
242: 2020-06-30    0 female      7305      131

Можно ли определить долю полов в каждой возрастной группе?

В общем, я хочу контролировать влияние третьей контрольной переменной (распределение по возрасту) на коронарные заболевания. Существует тенденция, что уровень умерших мужчин выше, чем женщин. Я хотел бы исследовать частотное распределение возрастных групп между возрастами, чтобы найти, возможно, больше объяснений.

Я благодарен за любой совет


person Benjamin Utsch    schedule 18.01.2021    source источник
comment
Можете ли вы привести небольшую выборку данных? Объедините два фрейма данных и выведите несколько строк данных.   -  person Eyayaw    schedule 18.01.2021
comment
Как я могу поделиться с вами этими данными? В противном случае вы можете найти его здесь: https://www.kaggle.com/kimjihoo/coronavirusdataset . Я использовал наборы данных TimeGender и TmeAge. Я не могу объединить, потому что TimeGender имеет две записи одной даты из-за двух двух типов пола, а TimeAge имеет 9 записей данных.   -  person Benjamin Utsch    schedule 18.01.2021
comment
Хотите узнать долю полов в каждой возрастной категории? Для подтвержденных случаев и смертей? Вы можете сгруппировать по возрасту и полу, а затем подсчитать случаи для каждой комбинации возрастных и половых групп. Что здесь измеряет возраст? Я вижу много нулей и s в конце.   -  person Eyayaw    schedule 18.01.2021
comment
# for age data set: dplyr solution df1 %>% group_by(age) %>% summarise(N = n(), tot_cases = sum(confirmed)) То же самое касается набора данных по полу. Вам нужно объединить два фрейма данных, чтобы найти доли по полу в каждой возрастной группе.   -  person Eyayaw    schedule 18.01.2021
comment
Если вам удастся объединить два набора данных с правильным ключом, то этот простой код может дать вам подтвержденные случаи по комбинации возраста и пола: совокупность (подтверждено ~ возраст + пол, сумма, данные = df)   -  person Eyayaw    schedule 18.01.2021
comment
Вы знаете, что я делаю неправильно?   -  person Benjamin Utsch    schedule 18.01.2021
comment
Вам не нужен dplyr для этого. Попробуйте это: aggregate(confirmed~age, sum, data = TimeAge_dt)   -  person Eyayaw    schedule 18.01.2021
comment
Вы получаете сообщение об ошибке, потому что вы передаете подмножество фрейма данных, а не имя переменной. Попробуйте это: TimeGender_dt %>% group_by(age) %>% summarise(N = n(), tot_cases = sum(confirmed) )   -  person Eyayaw    schedule 18.01.2021
comment
Но у меня есть две таблицы данных. Как я могу предоставить data= из более чем одного источника?   -  person Benjamin Utsch    schedule 18.01.2021
comment
Вы не можете. Вам нужно объединить два в один.   -  person Eyayaw    schedule 18.01.2021


Ответы (1)


Вам нужно найти способ объединить два набора данных, чтобы вычислить доли по комбинациям пола и возраста. Но, кажется, их нельзя объединить, так как нет общих ключей, кроме date, который не является уникальным идентификатором.

age = read.csv("TimeAge.csv")
sex = read.csv("TimeGender.csv")

head(age)
       date time age confirmed deceased
1 2020-03-02    0  0s        32        0
2 2020-03-02    0 10s       169        0
3 2020-03-02    0 20s      1235        0
4 2020-03-02    0 30s       506        1
5 2020-03-02    0 40s       633        1
6 2020-03-02    0 50s       834        

head(sex)
        date time    sex confirmed deceased
1 2020-03-02    0   male      1591       13
2 2020-03-02    0 female      2621        9
3 2020-03-03    0   male      1810       16
4 2020-03-03    0 female      3002       12
5 2020-03-04    0   male      1996       20
6 2020-03-04    0 female      3332       12

aggregate(confirmed~age, sum, data = age)
  age confirmed
1  0s     16107
2 10s     68752
3 20s    345827
4 30s    137539
5 40s    168250
6 50s    230030
7 60s    158505
8 70s     82107
9 80s     54086

aggregate(confirmed~sex, sum, data = sex)
     sex confirmed
1 female    747467
2   male    513727
person Eyayaw    schedule 18.01.2021