【发布时间】:2014-10-09 04:43:02
【问题描述】:
我知道有很多关于ifelse的问题,但我搜索并尝试了很多但没有成功,因此我在这里发布问题。
我有一个包含 10k 个参与者的数据框,其中包含 8 个变量,每个变量编码为 0、1、9 和 NA。我想创建一个变量来总结所有 8 个变量。
我要创建的条件是:如果 8 个变量中有一个值为 1,则新变量应为 1,如果有一个为 9,则返回 9,否则(行中的所有变量均为 NA 或其他)返回 0 .
我创建的代码是这样的,但只得到 1 和 NA:
z = with(dt, ifelse(var.1==1|var.2==1|var.3==1|var.4==1|
var.5==1|var.6==1|var.7==1|var.8==1, 1, ifelse(var.1==9|var.2==9|var.3==9|var.4==9|
var.5==9|var.6==9|var.7==9|var.8==9, 9, 0)))
谢谢。
【问题讨论】:
-
您的代码看起来不错。这是什么意思“我创建的代码是这个,但只得到 1 和 NA”。你能分享你的预期输出吗?此外,即使是几行的可重现示例也确实会有所帮助。
-
输出只有 1 和 NA,但是当我只使用前 3 或 4 个变量时,它工作正常。
-
逻辑条件
x==1返回TRUE如果x=1,FALSE如果x!=1,但是NA如果x=NA。 -
当最后一个变量 (var.8) 为 NA 时,它返回 NA 或 1(不是 0 或 9)。 @jlhoward 你是什么意思?
-
你可能想看看
%in%
标签: r if-statement