R 使用data.table根据另一列重新指定一列

R 使用data.table根据另一列重新指定一列,r,data.table,R,Data.table,我感兴趣的是将一列“contra\u end”中的-11值替换为另一列“current\u age”中包含的相应值-11是一个表示当前活动的变量,我想用存储在“current_age”中的每个人的实际年龄替换该值。Age有约500000个值,第一列中只有约4000个值的值为-11。当我运行以下代码将我的年龄列值分配给“contra_end”中的-11值时,我得到以下错误。我是否可以在不创建新年龄变量的情况下实现此功能 biobank[contra_end == -11, contra_end :

我感兴趣的是将一列“contra\u end”中的-11值替换为另一列“current\u age”中包含的相应值-11是一个表示当前活动的变量,我想用存储在“current_age”中的每个人的实际年龄替换该值。Age有约500000个值,第一列中只有约4000个值的值为-11。当我运行以下代码将我的年龄列值分配给“contra_end”中的-11值时,我得到以下错误。我是否可以在不创建新年龄变量的情况下实现此功能

biobank[contra_end == -11, contra_end := biobank[,"current_age", with=FALSE]]

Error in `[.data.table`(biobank, contra_end == -11, `:=`(contra_end, biobank[,  : 
  Supplied 500000 items to be assigned to 4919 items of column 'contra_end'. The RHS length must either be 1 (single values are ok) or match the LHS length exactly. If you wish to 'recycle' the RHS please use rep() explicitly to make this intent clear to readers of your code.

我使用了一个简短的数据集,它是我用这个代码制作的


biobank我使用了一个简短的数据集,它是我用这个代码制作的


biobank我想迈克尔是想说
actualDT[contra\u end=-11,contra\u end:=lookupTbl[.SD,on=(个人id),x.当前年龄]
我想迈克尔是想说
actualDT[contra\u end=-11,contra\u end:=lookupTbl[.SD,on=(个人id),x.当前年龄]