【发布时间】:2020-11-10 21:17:53
【问题描述】:
如果满足两个列标准但它不起作用,我正在尝试创建一个虚拟变量。例如,在我的数据中,如果firm_state 是 CA、MA、MD、ME 等,而我的状态是 CA、MA、MD、ME 等,我希望虚拟变量为 1。所以在我的图片中,我将希望 State 为 MD 或 ME 且firm_state 为 CA 的行具有虚拟变量“1”,而其他 State 为 AZ 或 TX 且firm_state 为 CA 的行具有“0”。但是,当我编写代码时,我只是将 same_party 中的所有内容都视为具有虚拟变量“1”。有人可以告诉我哪里出错了吗?这是我当前的代码。
data <- data %>%
mutate(same_party = ifelse(firm_state == "CA" | firm_state == "CO" |
firm_state == "NY" & State == "MD" |
State == "ME" | State == "WA", 1, 0))
【问题讨论】:
-
如果您能够向我们提供您的数据样本,将会有所帮助。例如,您可以输入
dput(data)并将输出粘贴到您的帖子中。 -
就像@Matt 说的那样,当您的示例无法重现时,真的很难提供帮助。也就是说,我认为您可以在
ifelse()语句中使用一些括号来解决这个问题,将您所追求的不同组合括起来。您还可以从dplyr中查看case_when(),以使您的语法更清晰,从而更容易调试。 -
是的,我认为您的逻辑几乎包括了所有内容,因为您没有在 ifelse 中使用括号
-
我很抱歉。我可以看到我的图片可能有点混乱。我的数据由来自同一个“firm_state”的数千行数据组成,所以我不确定如何显示它。我可能应该做一个单独的例子。但 DPH 能够回答我的问题。无论如何感谢您的帮助!
-
如果您觉得这些答案有帮助,请采纳其中一个。
标签: r dummy-variable