【发布时间】:2015-03-09 20:19:37
【问题描述】:
需要一些有关如何修复此过滤逻辑的见解。
test.session <- c("A","A","A","B","B","B")
test.start_flag <- c("1","0","0","1","0","0")
test.url <- c("in_list","in_field","out","not_in_list","in_field","out")
test.code_map <- 'tbd'
test.manual_map <- c("1","1","0","0","0","0")
test.df <- data.frame(test.session, test.start_flag, test.url, test.code_map, test.manual_map)
我想生成test.code_map 以匹配test.manual_map 向量。我已经对前四行进行了编码,但是需要对第 5 行和第 6 行的逻辑进行调整。逻辑:
- 如果起始标志为 1 且 url 为 'in_list',则 code_map 等于 1(完成)
- 如果起始标志为 0 且 url 为 'in_field',则 code_map 等于 1(完成)
- 如果起始标志为 0 且 url 为“out”,则 code_map 等于 0(完成)
- 如果开始标志为 1 且 url 为 'not_in_list' 则代码映射等于 0(完成)
- 如果起始标志为 0 且 url 为 'out',则代码映射等于 0(完成 - 同上)
- 如果起始标志为 0 且 url 为 'in_field',则代码映射等于 0 ***需要调整逻辑
*** 此字段需要等于 0,因为在此特定会话(会话 B)中,起始 URL 不等于我定义的字段,因此 code_map 的所有值都需要等于 0仅当满足此特定条件时。
【问题讨论】:
-
您在段落中说“如果起始标志为 0 且 url 为 'in_field',则 code_map 等于 1(完成)”然后您说“如果起始标志为 0 且 url 为” in_field',则代码映射等于 0"。你想要哪个?是否依赖于 test.session?
-
依赖于 start.flag 和 url。因此,如果起始标志等于 1,并且 url 等于“not_in_list”,那么对于该会话中的所有 url,我需要代码返回 0,即使起始标志为 0 且 url 为“in_field”,因为起始 URL 不在建议的列表中
标签: r filter logic conditional-statements