寻找更多" data.table-ish"根据另一个条件添加新列的方法

时间:2014-11-13 15:01:50

标签: r data.table conditional-statements

我可以像这样添加一个条件列:

dt$newcol <- ifelse(dt4$doy > 150 & dt4$doy < 280, 1, 0)

添加了新列&#34; newcol&#34;到数据表&#34; dt&#34;如果doy大于160且小于280,则填充newcol,否则填充为0。

我一直在尝试习惯数据表的语法,我想知道如何利用:= oporator以更多的数据表格式来做这件事?

提前致谢

1 个答案:

答案 0 :(得分:3)

你可以尝试

 library(data.table)
 dt4[,newcol:=(doy >150 & doy <280)+0L]
 head(dt4)
 #  doy         val newcol
 #1: 103 -1.35466363      0
 #2:  79 -0.96080882      0
 #3: 247  0.22495434      1
 #4: 182 -0.12316046      1
 #5: 232  0.00104102      1
 #6: 323 -0.57124325      0

或者您可以使用@Arun

评论的as.integer
 dt4[,newcol:= as.integer(doy>150 & doy < 280)]

数据

 set.seed(24)
 dt4 <- data.table(doy=sample(1:350, 150, replace=TRUE), val=rnorm(150) )