首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >度量组成员

度量组成员
EN

Stack Overflow用户
提问于 2014-04-22 20:10:53
回答 1查看 35关注 0票数 0

我有一个包含31个变量的学生数据框架。为了解决这个问题,我只对下面的专栏感兴趣。我把它们安排成这样来做示范:

代码语言:javascript
复制
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

我想对三年来的学生入学情况做一份总结。创建一个频率表使我非常接近我想要的结果:

代码语言:javascript
复制
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",学生就不会接受

我理想的输出应该如下所示:

代码语言:javascript
复制
    id  2009-10 2010-11 2011-12
  1       1       1       1
  2       1       0       0
  3       1       0       0

我尝试了ddply(汇总)和ifelse()的一些组合,但是我的实现肯定很奇怪,因为我没有得到我需要的结果

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-22 20:14:52

为什么不:

代码语言:javascript
复制
table(dem[c("id", "year", "action")])

生产:

代码语言:javascript
复制
, , 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):

代码语言:javascript
复制
table(subset(dem[c("id", "year", "action")], action=="A"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23229233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档