У меня есть фрейм данных, который выглядит примерно так:
df <- data.frame('Home.Team'=c("Omaha South", "Millard North", "Elkhorn","Elkhorn"),
'Winner'=c("Omaha South", "Millard North", "Elkhorn","Elkhorn"),
'Won By'=c(8,22,4,30),
'Away Class'=c("TRUE", "FALSE", "TRUE", "FALSE"))
Я пытаюсь создать новый столбец / переменную, используя условные if_else
из dplyr
. Это работало для меня в прошлом, но по какой-то причине теперь дает мне ошибку. Ниже приведен код и ошибка:
df$'Pre Score' <-
if_else(df$`Away Class`=="FALSE",
if_else(df$Home.Team==df$Winner, .8 + (df$`Won By`/100) -1, -1.2 - (df$`Won By`/100) -1),
if_else(df$Home.Team==df$Winner, .8 + (df$`Won By`/100), -1.2 - (df$`Won By`/100)))
Ошибка: true
должна быть длиной 4 (длина condition
) или единицей, а не 0
Я прочитал несколько обсуждений SO ( пример , пример , пример ), связанных с этим, но не смог перевести его в решение для моего проблема. Кажется, это как-то связано с частью кода if if. Очевидно, он думает, что это длина единицы, тогда как я хочу, чтобы она была длиной 4 или работала для всех строк. Попытался заменить if_else на case_when, но там тоже не удалось.