簡體   English   中英

如何在R中的data.frame中填充空白單元格

[英]How to fill the empty cells in data.frame in R

我正在R中的data.frame上工作,並希望以特定的方式填充空白單元格。 在下表中,標題為“解雇”,第二行和第四行中有兩個空單元格。 由於在實際data.frame中有超過100,000行,我想一次填充這些空單元格,將第二行填充為NIL,將第四行填充為D。再說一遍,根據以前存在的單元格的值。

    Dismissal      |
--------------------
        NIL        |
--------------------
    (empty)        |  
--------------------
         D         |
--------------------
     (empty)       |

您可以按如下所示遍歷數據框

for (i in 1:nrow(df)){
         if(df$Dismissal[i]=="empty")({ 
         df$Dismissal[i]=df$Dismissal[i-1] 
         }
    }

如果該字段具有NA值,則由於csv導入中的單元格為空,您將需要對循環進行一些更改:

for (i in 1:nrow(df)){
         if (is.na(df$Dismissal[i])){
         df$Dismissal[i]=df$Dismissal[i-1] 
         }
    }

NA值不適用於==, != or >=, <=因此您需要詢問is.na()!is.na()

使用dplyrzoo非循環解決方案:

library(dplyr)
library(zoo)
test.dat <- data.frame('Dismissal' = c('N', NA, 'D', NA, NA, 'C', NA))
test.dat$Dismissal <- as.character(test.dat$Dismissal)

test.dat %>%
  mutate(Test = ifelse(is.na(Dismissal),
                       #use fill forward function from zoo package
                       zoo::na.locf(lag(Dismissal), na.rm = F),
                       Dismissal))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM