使用data.table根据条件添加列

4
假设我有以下的data.table:
date=c("2014-02-06","2014-02-06","2014-03-01","2014-03-01","2014-03-28","2014-04-25","2014-04-25")
departure=c("NY", "NY", "Doha", "Tokyo", "Paris", "Tokyo", "Tokyo")
arrival=c("Milano", "Beijing", "Moscow", "Moscow", "Singapore", "Yaounde", "Milano")
DT<-data.table(date, departure, arrival)

得到以下结果:

         date departure   arrival
1: 2014-02-06        NY    Milano
2: 2014-02-06        NY   Beijing
3: 2014-03-01      Doha    Moscow
4: 2014-03-01     Tokyo    Moscow
5: 2014-03-28     Paris Singapore
6: 2014-04-25     Tokyo   Yaounde
7: 2014-04-25     Tokyo    Milano

现在我有这个日期:
lawDate="2014-03-17"

我希望在DT中添加一个名为“law”的列,如果date>lawDate则包含TRUE,否则为FALSE。

目前我是这样做的,但我不知道是否是最有效的方法......因为我的表DT可能非常大...

我的当前解决方案......但我不知道有没有更好的方法可以使用data.table来完成这个任务..

 DT$law = ifelse(date>lawDate, TRUE, FALSE)    
1个回答

7
DT[, law:=FALSE][date>lawDate, law:=TRUE]

甚至更短
DT[, law:=date>lawDate]

亲切的问候。

疯了。我确信有一种R-onic的方法可以继续! - Colonel Beauvel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接