[英]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.