我在 R 中使用 dplyr 包來使用下面的代碼測驗兩列的相等性。除了既不回傳 TRUE 也不回傳 FALSE 的缺失值,結果運行良好
mutate(check = if_else(only == count, TRUE, FALSE))
關于如何調整此語法的任何想法?
提前致謝!
uj5u.com熱心網友回復:
這是你想要的?
library(dplyr)
dat <- data.frame(only = c(1, NA, 2, 3, NA),
count = c(1, NA, 3, 2, 1))
dat %>%
mutate(check = if_else(only == count | is.na(only) & is.na(count),
TRUE, FALSE, missing = FALSE))
only count check
1 1 1 TRUE
2 NA NA TRUE
3 2 3 FALSE
4 3 2 FALSE
5 NA 1 FALSE
uj5u.com熱心網友回復:
mutate(check = if_else(only == count |
is.na(only) == is.na(count), TRUE, FALSE))
uj5u.com熱心網友回復:
你可以試試case_when。下面的代碼意味著如果不是col1 == col2,包括col1 != col2或列是NA,它將回傳FALSE。
# Example data frame
dat <- data.frame(
col1 = c(1, 2, 3, 4, 5),
col2 = c(1, 2, NA, 4, 6)
)
library(dplyr)
dat2 <- dat %>%
mutate(check = case_when(
col1 == col2 ~TRUE,
TRUE ~FALSE
))
print(dat2)
# col1 col2 check
# 1 1 1 TRUE
# 2 2 2 TRUE
# 3 3 NA FALSE
# 4 4 4 TRUE
# 5 5 6 FALSE
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/354142.html
