Replace empty values ​​with a value from another column in a dataframe

In one column of my data block, I have several blank cells. The data looks like this:

   yymmdd    lat   lon mag depth knmilocatie baglocatie   tijd
 19861226 52.992 6.548 2.8   1.0       Assen      Assen  74751
 19871214 52.928 6.552 2.5   1.5   Hooghalen            204951
 19891201 52.529 4.971 2.7   1.2   Purmerend    Kwadijk 200914
 19910215 52.771 6.914 2.2   3.0       Emmen      Emmen  21116
 19910425 52.952 6.575 2.6   3.0   Geelbroek    Ekehaar 102631
 19910808 52.965 6.573 2.7   3.0     Eleveld      Assen  40114

      

Desired output:

   yymmdd    lat   lon mag depth knmilocatie baglocatie   tijd
 19861226 52.992 6.548 2.8   1.0       Assen      Assen  74751
 19871214 52.928 6.552 2.5   1.5   Hooghalen  Hooghalen 204951
 19891201 52.529 4.971 2.7   1.2   Purmerend    Kwadijk 200914
 19910215 52.771 6.914 2.2   3.0       Emmen      Emmen  21116
 19910425 52.952 6.575 2.6   3.0   Geelbroek    Ekehaar 102631
 19910808 52.965 6.573 2.7   3.0     Eleveld      Assen  40114

      

Inspired by this solution , I tried to replace the blank cells with:

df$baglocatie[df$baglocatie == ""] <- df$knmilocatie

      

However, this did not work as empty cells were filled with incorrect values. Another possible solution didn't help either.

How to solve this?

+5


source to share


2 answers


Try ifelse

:



df$baglocatie <- ifelse(df$baglocatie == "", df$knmilocatie, df$baglocatie)

      

+11


source


You need to index the replacement column as well:



df[ df$baglocatie == "", "baglocatie"  ]  <- df[ df$baglocatie == "", "knmilocatie" ]

      

+3


source







All Articles