数据集操作,替换



我有以下数据集:

    V1  V2  V3  V4  V5 V6  V7  V8 V9 V10
   1:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
   2:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
   3:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
   4:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
   5:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
  ---                                      
3180:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
3181:  NA  NA 185  NA  NA NA  NA  NA NA  NA
3182: 151 162 162 157 150 NA 162 162 NA  NA
3183:  NA  NA  NA  NA  NA NA  NA  NA NA  NA
3184: 153  NA  NA  NA  NA NA  NA  NA NA  NA

我试图用1替换所有的174,然后将其他所有内容设置为0。这是我的代码:

sibling=data.table(cbind((data[,'b16aa']),(data[,'b16ba']),(data[,'b16ca']),(data[,'b16da']),(data[,'b16ea']),    (data[,'b16fa']),(data[,'b16ga']),(data[,'b16ha']),(data[,'b16ia']),(data[,'b16ja'])))
sibling[sibling == 174] <-1

但是输出是:

 > sib1
[1] 1

这显然是错误的,我不确定如何将其他所有内容设置为0。

如果DF是你的数据帧,那么试试这个:

DF[] <- as.numeric(DF == 174 & !is.na(DF))

或这个非破坏性的版本,可以分配到您希望的名称:

replace(DF, TRUE, as.numeric(DF == 174 & !is.na(DF)))

最新更新