[英]If then statement in R - replacing based on value
只需完成
df$NAME_1[is.na(df$NAME_1)] <- df$NAME_2[is.na(df$NAME_1)]
這只是將每個向量中的值子集到 NAME_1 中為 NA 的位置的元素
根據您提供的信息,使用虛擬數據的解決方案:
df <- data.frame(ID = c(1,6,3,5,6,2,8,9),
NAME_1 = c(NA, "STEVE", NA, "JULIE", "BOB", "AMY", NA, "BRUCE"),
NAME_2 = c("MARY", "STEVE", "JAN", "JULIE", "BOB", "AMY", "FRANK", "BRUCE"))
library(dplyr)
df %>%
dplyr::mutate(NEW_COLUMN = ifelse(is.na(NAME_1), NAME_2, NAME_1))
使用來自base
ifelse
的 ifelse,
df$'DESIRED OUTCOME NAME' = ifelse(is.na(df$NAME_1), df$NAME_2, df$NAME_1)
在這種特殊情況下,最簡單的解決方案是使用dplyr::coalesce
library(dplyr)
df %>% mutate(`DESIRED OUTCOME NAME` = coalesce(NAME_1, NAME_2))
ID NAME_1 NAME_2 DESIRED OUTCOME NAME
1 1 <NA> MARY MARY
2 6 STEVE STEVE STEVE
3 3 <NA> JAN JAN
4 5 JULIE JULIE JULIE
5 6 BOB BOB BOB
6 2 AMY AMY AMY
7 8 <NA> FRANK FRANK
8 9 BRUCE BRUCE BRUCE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.