R 寻找一个更;数据。表ish“;基于其他列的条件添加新列的方法

R 寻找一个更;数据。表ish“;基于其他列的条件添加新列的方法,r,data.table,conditional-statements,R,Data.table,Conditional Statements,我可以添加如下条件列: dt$newcol <- ifelse(dt4$doy > 150 & dt4$doy < 280, 1, 0) dt$newcol 150和dt4$doy代码>相同的数据表,只是有一个称为“NeCoCL”的新列,该列使用DOY列中的一个约束。我将添加一些示例数据,请考虑显示示例数据的几行,请澄清: DOY 处于不同的数据表中,而不是 NeoCale>代码>相同的数据表,只是有一个称为“NeCoCL”的新列,该列使用DOY列中的一个约束。我将添

我可以添加如下条件列:

dt$newcol <- ifelse(dt4$doy > 150 & dt4$doy < 280, 1, 0)
dt$newcol 150和dt4$doy<280,1,0)
它将新列“newcol”添加到数据表“dt”中,如果doy大于160且小于280,则用1填充newcol,否则用0填充

我一直在尝试习惯数据表语法,我想知道如何使用:=operator以更具数据表风格完成这项工作

提前谢谢

您可以试试

 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
数据
set.seed(24)
dt4你可以试试

 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
数据
set.seed(24)
dt4你可以试试

 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
数据
set.seed(24)
dt4你可以试试

 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
数据
set.seed(24)


DT4请考虑显示示例数据的几行,请澄清:<代码> DOY 处于不同的数据表中,而不是<代码> NeoCoC[/COD]。同一数据表,简单地有一个称为“NeCoL”的新列,该列使用DOY列中的一个约束。我将添加一些示例数据,请考虑显示示例数据的几行,请澄清:<代码> DOY 处于不同的数据表中,而不是<代码> NeoCale>代码>相同的数据表,只是有一个称为“NeCoCL”的新列,该列使用DOY列中的一个约束。我将添加一些示例数据,请考虑显示示例数据的几行,请澄清:<代码> DOY 处于不同的数据表中,而不是<代码> NeoCale>代码>相同的数据表,只是有一个称为“NeCoCL”的新列,该列使用DOY列中的一个约束。我将添加一些示例数据,请考虑显示示例数据的几行,请澄清:<代码> DOY 处于不同的数据表中,而不是<代码> NeoCale>代码>相同的数据表,只是有一个称为“NeCoCL”的新列,该列使用DOY列中的一个约束。我将添加一些示例数据如果输出只需要1/0或示例(+1)中的真/假,这可能是最好的方法。@初学者谢谢,但是,如果它类似于(0,99),您可以
Nice+1。考虑使用<代码> AS。整数()/<代码>而不是<代码> + 0 < /代码> -不太神秘。如果没有,则执行,
+0L
。前者强制使用占用8字节存储空间的
numeric
类型。@Arun谢谢,我将添加
+0L
完美!dt4[,newcol:=as.integer(doy>150&doy<280)]正是我想要的。如果输出只需要1/0或示例(+1)中的真/假,这可能是最好的方法。初学者谢谢,但是,如果它类似于(0,99),您可以
乘法
Nice+1。考虑使用<代码> AS。整数()/<代码>而不是<代码> + 0 < /代码> -不太神秘。如果没有,则执行,
+0L
。前者强制使用占用8字节存储空间的
numeric
类型。@Arun谢谢,我将添加
+0L
完美!dt4[,newcol:=as.integer(doy>150&doy<280)]正是我想要的。如果输出只需要1/0或示例(+1)中的真/假,这可能是最好的方法。初学者谢谢,但是,如果它类似于(0,99),您可以
乘法
Nice+1。考虑使用<代码> AS。整数()/<代码>而不是<代码> + 0 < /代码> -不太神秘。如果没有,则执行,
+0L
。前者强制使用占用8字节存储空间的
numeric
类型。@Arun谢谢,我将添加
+0L
完美!dt4[,newcol:=as.integer(doy>150&doy<280)]正是我想要的。如果输出只需要1/0或示例(+1)中的真/假,这可能是最好的方法。初学者谢谢,但是,如果它类似于(0,99),您可以
乘法
Nice+1。考虑使用<代码> AS。整数()/<代码>而不是<代码> + 0 < /代码> -不太神秘。如果没有,则执行,
+0L
。前者强制使用占用8字节存储空间的
numeric
类型。@Arun谢谢,我将添加
+0L
完美!dt4[,newcol:=as.integer(doy>150&doy<280)]正是我想要的。