Заменить значения с NA на ту же позицию в другом DF - PullRequest
0 голосов
/ 12 июня 2018

У меня есть два кадра данных:

df1
 Col1     Col2      Col3     Col4
    1        0         3        5 
   NA        1        NA        0
    2        3        NA        5

df2
 Col1     Col2      Col3     Col4
    7        0         5        7 
    0        8         0        0
    9        9         6        2

Как заменить df2 на NA на ту же позицию, что и df1?

Я хочу, чтобы мой последний df3 былвыглядеть так:

 Col1     Col2      Col3     Col4
    7        0         5        7 
   NA        8        NA        0
    9        9        NA        2

Ответы [ 2 ]

0 голосов
/ 12 июня 2018
df3=`is.na<-`(df2,is.na(df1))
df3
  Col1 Col2 Col3 Col4
1    7    0    5    7
2   NA    8   NA    0
3    9    9   NA    2

или даже

df3=replace(df2,is.na(df1),NA)
 df3
  Col1 Col2 Col3 Col4
1    7    0    5    7
2   NA    8   NA    0
3    9    9   NA    2
0 голосов
/ 12 июня 2018

По моему мнению, база R лучше приспособлена для этого по сравнению с tidyverse:

df2[is.na(df1)] <- NA

, что дает:

> df2
  Col1 Col2 Col3 Col4
1    7    0    5    7
2   NA    8   NA    0
3    9    9   NA    2

А если выочень нужно df3:

df3 <- df2
df3[is.na(df1)] <- NA
...