R 数据集操作、替换

R 数据集操作、替换,r,data.table,R,Data.table,我有以下数据集: 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 N

我有以下数据集:

    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

这显然是错误的,我不知道如何将其他所有设置为0。

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

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

您没有提供可复制的示例。什么是
数据
?您的“数据集”没有名为“b16aa”或类似的列。如果您使用的是
data.table
,并且
data
data.table
,那么您不应该像现在这样创建同级。您的方法缺少很多东西,并且可能存在问题。请看,我希望数据表中等于174的所有内容都为1,其他所有内容都为0,即使是NA。现在也为
NA
值添加了一个条件。
DF[] <- as.numeric(DF == 174 & !is.na(DF))
replace(DF, TRUE, as.numeric(DF == 174 & !is.na(DF)))