R:使用条件索引遍历列

时间:2019-12-07 04:19:15

标签: r loops

我从另一个格式较差的程序中获得了数据,其中每个公司的名称仅作为标题提供一次,但随后的每个记录都将NA给出。

company invoice  item
<chr>     <dbl> <dbl>
A            NA    NA
NA            1     5
NA            1     3
B            NA    NA
NA            2     2
C            NA    NA
NA            3     4
NA            4     7
NA            4     6
NA            5     8

我想遍历company,将每个公司的NA值替换为其名称:

company invoice  item
<chr>     <dbl> <dbl>
A            NA    NA
A             1     5
A             1     3
B            NA    NA
B             2     2
C            NA    NA
C             3     4
C             4     7
C             4     6
C             5     8

由于每个公司名称的第一个实例都是正确的,所以对company[[i - 1]]的每个实例使用NA的索引对我来说是有意义的。因此,我尝试遍历索引,并对以下内容进行变通:

df$company <- for (i in seq_along(df$company)) {
  if (is.na(df$company[[i]]) == TRUE) {
    df$company[[i]] = df$company[[i - 1]]
  } else {
    df$company[[i]] = df$company[[i]]
  }
}

要么返回缺少df的{​​{1}},要么返回company。我需要更改什么才能得到想要的结果?

0 个答案:

没有答案