【问题标题】:Convert categorical variable to events count variable in R将分类变量转换为 R 中的事件计数变量
【发布时间】:2013-09-09 00:50:11
【问题描述】:

我正在处理跨国 每日 数据(我为其生成了一个年份变量),其中包含超过 270,000 个观察值,以及本次讨论中感兴趣的变量的大量缺失值(PartyCode) .数据如下:

Data <- data.frame(
  Observation = 1:6,
  PartyCountry = c("CHN", "CHN", "GER", "GER", "USA", "USA"), 
  Year = c(1999, 2000, 2000, 2001, 1999, 1999),
  PartyCode=c(20, NA, 20, 22, NA, 21) 
  )


Observation     PartyCountry   PartyYear    PartyCode
      1              CHN       1999             20
      2              CHN       2000             NA
      3              GER       2000             20
      4              GER       2001             22
      5              USA       1999             NA
      6              USA       1999             21

我想将这些数据更改为年度数据,采用国家/年格式:

Observation PartyCountry PartyYear PartyCode20Count PartyCode21Count PartyCode22Count
    1        CHN          1999            100             100             100
    2        CHN          2000            100             100             100
    3        CHN          2001            300             300             300
    4        GER          1999            300             300             300
    5        GER          2000            140             140             140
    6        GER          2001            212             212             200

我的问题是多方面的:

1) 如何从分类 PartyCode 变量中提取值以生成我想要的计数变量(对于每个类别)?

值得注意的是,这个数据集有很多分类变量 PartyCode 的缺失值。

【问题讨论】:

    标签: r time-series categorical-data


    【解决方案1】:

    听起来你应该从“reshape2”中探索dcast

    library(reshape2)
    dcast(DF, PartyCountry + PartyYear ~ PartyCode, value.var="PartyCode")
    # Aggregation function missing: defaulting to length
    #   PartyCountry PartyYear 20 21 22
    # 1          CHN      1999  1  0  0
    # 2          CHN      2000  2  0  0
    # 3          CHN      2001  0  0  1
    # 4          GER      1999  3  0  0
    # 5          USA      2000  0  2  0
    # 6          USA      2001  2  0  2
    

    在这里,我们只是“计数”(使用length 作为聚合变量),但如果它们更有意义,您也可以使用不同的函数(例如,summean)。


    通常,“折叠”数据建议查看 R 中的众多“聚合”函数之一。然后,从您开始的“长”格式转换为您想要结束的“宽”格式通常建议查看“重塑”功能之一。

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 2011-05-26
      • 2019-11-15
      • 1970-01-01
      • 2020-09-16
      • 2020-10-10
      • 2021-01-01
      • 2020-08-02
      • 1970-01-01
      相关资源
      最近更新 更多