【问题标题】:Relate gender distribution to age distribution in R将性别分布与 R 中的年龄分布联系起来
【发布时间】:2021-01-19 00:37:08
【问题描述】:

我正在尝试创建一个 data.frame,我在其中添加了与年龄分布成比例的年龄分布中不同性别的份额。

我有以下两个data.tables


 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

是否可以推断出每个年龄段的性别比例?

一般来说,我想控制第三个控制变量(年龄分布)对日冕死亡的影响。有男性死亡率高于女性的趋势。我想调查不同年龄段的年龄组的频率分布,以找到更多的解释。

感谢您的任何建议

【问题讨论】:

  • 你能提供一个数据的小样本吗?合并两个数据框,输入几行数据。
  • 我可以分享这些数据吗?否则,您可以在这里找到它:https://www.kaggle.com/kimjihoo/coronavirusdataset。我使用了 TimeGender 和 TmeAge 数据集。我无法合并,因为 TimeGender 有两个条目,一个日期到期,有两个性别类型,而 TimeAge 有 9 个数据条目。
  • 你想知道每个年龄段的性别比例吗?对于确诊病例和死亡病例?您可以按年龄和性别分组,然后计算每个年龄和性别组组合的案例。年龄在这里衡量什么?我在结尾看到很多零和 s。
  • # for age data set: dplyr solution df1 %>% group_by(age) %>% summarise(N = n(), tot_cases = sum(confirmed)) 按性别划分的数据集也是如此。您需要结合这两个数据框才能找到每个年龄组中按性别划分的份额。
  • 如果您设法使用适当的键合并两个数据集,那么这个简单的代码可以通过年龄-性别组合为您提供确诊病例:aggregate(confirmed~age+sex, sum, data = df)

标签: r contingency


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多