Я не уверен, есть ли у вас конкретная причина, по которой вы хотите использовать оператор 'if' и список, но если вы просто ищете результат в столбце, это работает:
library(dplyr)
df <- tibble(
x = c(1,3,5,22,78,56),
y = c(2,4,3,21,88,77)
) %>%
mutate(result = case_when(
x > y ~ "A",
TRUE ~ "B"
))
case_when
часто является хорошей заменой оператора if и работает быстрее.
Если вы действительно хотите получить результат в списке, вы можете сделать это в конце:
df_list <- list(df$x, df$y, df$result)
, но в этом случае приведенный выше комментарий, вероятно, предлагает более прямое решение.