ifelse cal c правильно отображается в консоли, но не во фрейме данных в R - PullRequest
1 голос
/ 08 мая 2020

Когда я запускаю следующий код, он правильно отображается в консоли, но фрейм данных неверен, и каждая строка отображает «IDK»

#sample data
x <- data.frame("ID" = 1:5, "action" = c("Assists","Goals", "Assists", "Goals", "Goals"), "team" ="FSU", "prev_action" = "text")

#code not working as expecting
ifelse( x$action == "Goals" & lag(x$action) == "Assists" & lag(x$team) == x$team,
        x$prev_action <- "Assists",x$prev_action <- "IDK")

После запуска кода консоль отображает:

[1] "IDK"     "Assists" "IDK"     "Assists" "IDK"   

... но если я запустил это ...

print(x$prev_action)
[1] "IDK" "IDK" "IDK" "IDK" "IDK"

1 Ответ

0 голосов
/ 08 мая 2020

Мы можем удалить <- внутри ifelse и поместить его снаружи

x$prev_action <- ifelse( x$action == "Goals" & 
           lag(x$action) == "Assists" & lag(x$team) == x$team,
                        "Assists","IDK")
x$prev_action
#[1] "IDK"     "Assists" "IDK"     "Assists" "IDK"    
...