【发布时间】:2020-04-17 20:34:22
【问题描述】:
我正在使用“过滤器”功能根据任一条件从我的数据中选择行:
Subset_data <- filter(Data, company_type == 3 & annualturnover %in% c(1,2,3) | company_type == 2 & annualturnover %in% c(1,2))
现在我想添加一列,当行满足第一个条件(company_type == 3 & Annualturnover %in% c(1,2,3))时,其值为“0”,值为“1”如果满足第二个条件(公司类型 == 2 & 年营业额 %in% c(1,2))。
我怎样才能有效地做到这一点(如果可能,不要循环)?
【问题讨论】:
-
大概你正在使用来自
dplyr的filter。dplyr添加新列的方式是Subset_data <- Subset_data %>% mutate(first_cond = company_type == 3 & annualturnover %in% c(1,2,3), second_cond = company_type == 2 & annualturnover %in% c(1,2)) -
我只想根据条件添加一列,其值为 0 或 1。
-
如前所述,我想要的只是添加了 one 列 - 您的代码添加了两列“first cond”和“second cond”
-
如果两者都没有遇到,或者两者都遇到,你想要什么? (理论上,我猜这两种公司不可能同时存在)
-
如果两个条件都不满足,该行将不再在子集中......因为我正在使用过滤器。两个条件都满足是不会发生的
标签: r logical-operators