簡體   English   中英

dplyr 中的問題:新列中不需要的 NA

[英]issue in dplyr: unwanted NA's in new column

我有以下數據框:

Xnumber   Number
X17339    EWY
X17339    LW2Y
X17401    EWC
X17401    LWY
X17466    EWC
X17466    LWY 
X17466    EWY
X17466    LWC

我想使用以下代碼創建一個新列 Number2:

library(dplyr 
df3<-df3 %>% group_by(Xnumber) %>% mutate(Number2=if_else(lead(Number)=="LWC","Unknown",Number))

這就是我生成的數據框的樣子:

    Xnumber   Number   Number2
    X17339    EWY      EWY
    X17339    LW2Y     LW2Y
    X17401    EWC      EWC
    X17401    LWY      LWY
    X17466    EWC      EWC
    X17466    LWY      LWY
    X17466    EWY      Unknown
    X17466    LWC      LWC

但相反,我在我的新專欄中也得到了 NA,就像這樣。

    Xnumber   Number   Number2
    X17339    EWY      EWY
    X17339    LW2Y     NA
    X17401    EWC      EWC
    X17401    LWY      NA
    X17466    EWC      EWC
    X17466    LWY      LWY
    X17466    EWY      Unknown
    X17466    LWC      NA

我不確定為什么會這樣。 有什么想法嗎?

使用default

library(dplyr)
 
df3<-df3 %>% 
  group_by(Xnumber) %>% 
  mutate(Number2=if_else(lead(Number, default = "") == "LWC","Unknown",Number))

由於您對數據進行了分組, lead將在每個組的末尾返回一個 NA(前面沒有進一步的組內值)。 如果你想用最近的非 NA 替換它們,{tidyr} 的fill就派上用場了。 例子:

data.frame(x = c(1:3, NA, 5)) |>
   tidyr::fill(x, .direction = 'down')

暫無
暫無

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

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