我有以下数据集:
anticaptcha
我想基于test <- data.frame("eventId" = c(rep(1,5), rep(2,3), rep(3,6)),
"commandType" = c(rep("RO",3), rep("RW", 2), rep("RO",7),"RW", "RO"),
"sessionType" = c(rep("RW",5), rep("RO",3), rep("RW",6)))
为每个sessionType
(组)分配eventId
。如果该组中出现“ RW”,则将整个组分配为“ RW”。如果组的commandType
仅具有“ RO”或“ RW”,则commandType
将与sessionType
相匹配。
我认为可以在commandType
中完成此操作,但不确定如何实现。任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
诀窍是在group_by
中使用dplyr
...
test <- test %>%
group_by(eventId) %>%
mutate(sessionType2 = ifelse("RW" %in% commandType, "RW", commandType))
test
eventId commandType sessionType sessionType2
<dbl> <chr> <chr> <chr>
1 1 RO RW RW
2 1 RO RW RW
3 1 RO RW RW
4 1 RW RW RW
5 1 RW RW RW
6 2 RO RO RO
7 2 RO RO RO
8 2 RO RO RO
9 3 RO RW RW
10 3 RO RW RW
11 3 RO RW RW
12 3 RO RW RW
13 3 RW RW RW
14 3 RO RW RW
顺便说一句,我还必须在您的数据框代码中设置stringsAsFactors=FALSE
。