首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个值分配给可引用的新数据,其中组的计数在特定的数字上。

将一个值分配给可引用的新数据,其中组的计数在特定的数字上。
EN

Stack Overflow用户
提问于 2014-12-01 07:12:24
回答 1查看 51关注 0票数 0
代码语言:javascript
复制
enrolments<-data.table(ID=c(100001, 100001, 100001, 100001, 100002,  
100002, 100002, 100002),
start_date=c("Jan-10","Jan-10","Jun-10","Jun-10", "Jan-10","Jan-11","Jan-11","Jun-11"),       
subject_code = c(1:8), 
status = c("Pass","Fail","Withdrawn","Pass","Pass","Pass","Pass","Pass"))

我有一个data.table注册与student_IDs,开始日期,主题代码,状态(通过,撤回,失败)。

ID start_date subject_code状态 1 100001 /10 1通行证 2 100001 1/10 2失败 3 100001 6月10日3撤回 4 100001 6月-10 4通过 5. 100002 /10/5通行证 6 100002 /11 6通行证 7 100002 /11 7通行证 6月8日100002 -11日8次传球

我想创建一个新列"first_subjects“,如果前两个主题的状态被撤回或失败,列= Y,否则为N

数据已经按学生和日期进行了排序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-01 07:16:00

你可以试试

代码语言:javascript
复制
 enrolments[, first_subjects:=c('N', 'Y')[any(status[1:2] %in% 
                         c('Fail', 'Withdrawn'))+1] , by=ID]

 enrolments
 #       ID start_date subject_code    status first_subjects
 #1: 100001     Jan-10            1      Pass              Y
 #2: 100001     Jan-10            2      Fail              Y
 #3: 100001     Jun-10            3 Withdrawn              Y
 #4: 100001     Jun-10            4      Pass              Y
 #5: 100002     Jan-10            5      Pass              N
 #6: 100002     Jan-11            6      Pass              N
 #7: 100002     Jan-11            7      Pass              N
 #8: 100002     Jun-11            8      Pass              N
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27223358

复制
相关文章

相似问题

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