Replace empty values with value from other column in a dataframe
19,322
Solution 1
Try ifelse
:
df$baglocatie <- ifelse(df$baglocatie == "", df$knmilocatie, df$baglocatie)
Solution 2
You need to index also the replacing column:
df[ df$baglocatie == "", "baglocatie" ] <- df[ df$baglocatie == "", "knmilocatie" ]
Solution 3
Or you can use a support vector:
empty <- df$baglocatie == ""
df$baglocatie[empty] <- df$knmilocatie[empty]
Comments
-
Jaap almost 2 years
In one column of my dataframe I have some empty 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
The desired result is:
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 empty cells with:
df$baglocatie[df$baglocatie == ""] <- df$knmilocatie
However, this did not work as the empty cells were filled with the wrong values. Another possible solution also didn't work.
How do I solve this?
-
zx8754 about 2 yearsComing across this post after 8 years, I think this is the correct answer, not mine.