ДАННЫЕ
df <- structure(list(ID = c("51-07519", "51-07522", "51-07525", "51-07526",
"51-07527", "51-07530"), name = c("Fyb", "Fyb", "Fyb", "Fyb",
"Fyb", "Fyb"), serology_charts = c(0L, 0L, NA, 0L, 1L, 1L), antibodies_chart = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), bioarray_charts = c(NA, 0L, NA, 0L, NA, NA), others_charts = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), Fyb = c(1, 1, 1, 1, 1, 1), GATAfactor = c(0, 0, 1, 0, 0.5,
0.5)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))
В настоящее время я запускаю следующий фильтр:
df%>%
filter_at(vars(ends_with("charts")), any_vars(!is.na(.) & . != Fyb*GATAfactor))
Можно ли написать оператор if следующим образом:
if Fyb!=1 {filter_at(vars(ends_with("charts")), any_vars(!is.na(.) & . != Fyb))}
else {filter_at(vars(ends_with("charts")), any_vars(!is.na(.) & . != Fyb*GATAfactor))}