我可以像这样添加一个条件列:
dt$newcol <- ifelse(dt4$doy > 150 & dt4$doy < 280, 1, 0)
添加了新列&#34; newcol&#34;到数据表&#34; dt&#34;如果doy大于160且小于280,则填充newcol,否则填充为0。
我一直在尝试习惯数据表的语法,我想知道如何利用:= oporator以更多的数据表格式来做这件事?
提前致谢
答案 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) )