-3

我有以下数据集:

    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。

4

1 回答 1

2

如果DF是您的数据框,请尝试以下操作:

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

或者这个可以分配给你想要的名字的非破坏性版本:

replace(DF, TRUE, as.numeric(DF == 174 & !is.na(DF)))
于 2013-05-06T23:26:26.097 回答