0

我正在使用超过 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 的缺失值。

4

1 回答 1

0

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

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,您也可以使用不同的函数(例如,sum或)。mean


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

于 2013-08-27T17:30:52.570 回答