从另一列在一个数据帧替换值空值从另一列在一个数据帧替换值空值(Replace empty value

2019-05-12 06:14发布

在我的数据帧的一个专栏中,我有一些空白单元格。 数据是这样的:

   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

所需的结果是:

   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

灵感来自这个解决方案 ,我试图用更换空单元格:

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

然而,随着空细胞都充满了错误的价值观并没有工作。 另一种可能的解决方案还没有工作。

我该如何解决这个问题?

Answer 1:

尝试ifelse

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


Answer 2:

你需要指数也替换列:

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


Answer 3:

或者你可以使用一个支持矢量:

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


文章来源: Replace empty values with value from other column in a dataframe