Я не уверен, что заголовок достаточно точен, чтобы описать мою проблему. У меня есть кадр данных с наборами 1:n
из двух групп A
и B
и возможный статус Calm
, Action1
и Action2
.R создать новый столбец для набора значений несколькими условиями
triggers <- c("Action1", "Action2")
df <- data.frame(Set = c(rep(1, 4), rep(2, 4), rep(1, 4)),
Group = c(rep("A", 4), rep("A", 4), rep("B", 4)),
Status = c(rep("Calm",3), "Action1", rep("Calm",3),
"Action2", rep("Calm", 4)))
Set Group Status
1 A Calm
1 A Calm
1 A Calm
1 A Action1
2 A Calm
2 A Calm
2 A Calm
2 A Action2
1 B Calm
1 B Calm
1 B Calm
1 B Calm
на основе вектора triggers
я хочу, чтобы создать новый столбец, где выполнены следующие условия.
Если в одном наборе (для каждой группы) Action1
или Action2
происходит, чем запись в новый столбец статус Action
также для Status
Calm
.
Результат в новой колонке должен быть c(rep("Action", 8), rep("Calm", 4))
.
Я не мог решить проблему с несколькими условиями в этом фрейме данных. Надеюсь, кто-то может мне помочь и прощает мое не-математическое описание проблемы.
Awesome- могли бы вы также обеспечить data.table решение? – Christian
Ахаха, умное использование 'any': D – Aramis7d
@Christian Я не эксперт' data.table'. Мое решение 'data.table' не было бы хорошим. Но если вы не работаете с большим набором данных, 'dplyr' должен хорошо выполнять эту работу. – Alex