【发布时间】:2016-06-27 09:25:01
【问题描述】:
我正在尝试根据现有变量的值生成两个新变量。这是一个非常简单的操作,但我似乎无法让它在 r 中向量的所有值上正确运行。我正在尝试从 SPSS 转换为 r,但这个特定目标似乎不能很好地转换为 r。
对于 Condition 的每个值,我想为一个名为“expect”的新变量生成一个值。所以(非正式地)我想要类似的东西
if Condition = 1, expect = 0
if Condition = 2, expect = 1
if Condition = 3, expect = 0
if Condition = 4, expect = 1
如何将其放入 r 代码中?如何在整个向量上运行这些链式 ifelse 语句?我意识到这是一个非常初学者的问题,但我一直在寻找相当长的时间并没有找到解决方案。我能收集到的最好的是:
expect<-ifelse(Condition == 1, 0, 1, ifelse(Condition == 2, 1, 0, ifelse(Condition == 3, 0, 1, ifelse(Condition == 4, 1, 0))))
但我知道那是不正确的。
如果有人可以提供帮助,将不胜感激。
【问题讨论】:
-
为什么不一次做两个:
ifelse(Condition==1 | Condition==3, 0, 1)假设只有 4 个可能的值。 -
ifelse函数采用以下三个值:condition, yes, no。但是,您的代码具有以下内容:condition, yes, no, ifelse...。将no替换为下一个ifelse即可。
标签: r