使用data.table添加条件列

Col*_*vel 1 r data.table

假设我有以下内容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)
Run Code Online (Sandbox Code Playgroud)

得到这个结果:

         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
Run Code Online (Sandbox Code Playgroud)

现在我有这个日期:

lawDate="2014-03-17"
Run Code Online (Sandbox Code Playgroud)

我想在DT中添加一个名为“ law”的列,例如date>lawDate它是否包含TRUE,否则包含FALSE。我目前正在这样做,但是我不知道这是否是最有效的方法……因为我的表DT可能非常大……

我当前的解决方案...但是我不知道data.table是否有更好的方法可以做到这一点..

 DT$law = ifelse(date>lawDate, TRUE, FALSE)    
Run Code Online (Sandbox Code Playgroud)

小智 5

DT[, law:=FALSE][date>lawDate, law:=TRUE]
Run Code Online (Sandbox Code Playgroud)

甚至更短

DT[, law:=date>lawDate]
Run Code Online (Sandbox Code Playgroud)

亲切的问候