衡量组成员资格

时间:2014-04-22 20:10:54

标签: r

我有一个包含31个变量的学生数据数据框。出于这个问题的目的,我只对以下列感兴趣。我这样安排他们进行示威:

id  year    action
1   2009-10 A
2   2009-10 A
3   2009-10 A
1   2010-11 A
2   2010-11 declined
3   2010-11 declined
1   2011-12 A

我想提供一份三年以上的学生入学摘要。创建一个频率表让我非常接近我想要的结果:

table(dem$id, dem$year)

   2009-10 2010-11 2011-12
  1       1       1       1
  2       1       1       0
  3       1       1       0
但是,它没有考虑" action"列(显然)。我需要根据

来衡量注册情况 1)学生辍学了吗?如果它们在2009-10之后辍学,那么这个数据库中就没有它们的记录

2)他们接受了吗?如果答案不是" A",则学生尚未接受

我的理想输出看起来像这样:

    id  2009-10 2010-11 2011-12
  1       1       1       1
  2       1       0       0
  3       1       0       0

我尝试了ddply(summary)和ifelse()的一些组合,但我的实现必须是奇怪的,因为我没有得到我需要的结果

1 个答案:

答案 0 :(得分:1)

为什么不:

table(dem[c("id", "year", "action")])

产地:

, , action = A

   year
id  2009-10 2010-11 2011-12
  1       1       1       1
  2       1       0       0
  3       1       0       0

, , action = declined

   year
id  2009-10 2010-11 2011-12
  1       0       0       0
  2       0       1       0
  3       0       1       0

如果您只想要A,您也可以将dem分组(尽管action需要为此字符才能显示A):

table(subset(dem[c("id", "year", "action")], action=="A"))