假设我有以下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”的列,例如if date>lawDate
包含TRUE,否则为FALSE。
我现在正在这样做,但我不知道这是否是最有效的方式...因为我的桌子DT可能非常大......
我目前的解决方案......但我不知道data.table是否有更好的方法来做到这一点..
DT$law = ifelse(date>lawDate, TRUE, FALSE)
答案 0 :(得分:4)
DT[, law:=FALSE][date>lawDate, law:=TRUE]
甚至更短
DT[, law:=date>lawDate]
亲切的问候