【发布时间】:2018-05-13 11:05:58
【问题描述】:
我有两个关于在 R 中创建新变量的基本问题。我将展示一些代码,希望有人可以帮助回答这些问题!
df0$new <- ifelse(df0$old=="yes",1,0)
在这段代码中,我创建了一个名为“new”的新变量,如果变量“old”等于 yes 或等于 0,则该变量等于 1。但在变量“old”中,我缺少数据(表示为 -99、-98、NAN)。那么我该如何解释缺失值呢?
第二个问题是关于使用“OR”语句的。
df0$z <- ifelse(df0$x1=="yes",1,0 | )
如果参与者对 5 个问题 (q1-q5) 中的任何一个回答“是”,我想创建一个等于 1 的新变量 z。所以我想对其进行编码,使其看起来像: z = 1 if q1 ==1 OR q2 == 1 OR q3 == 1 OR q4 == 1 OR q5 == 1. 如果 q1-q5 中没有一个等于 1 比 I想要将 z 设置为 0。但是,如上所述,这也带来了缺失值的问题。非常感谢!
【问题讨论】:
-
解决方案取决于如果缺少旧值,您要为新变量分配什么值。它应该是 NA 还是 0?
-
你的数据结构是什么?特别是
q1 - q5的问题是不同的向量吗? (还有,是x1还是q1?) -
第一期还是
df0$new <- as.integer(df0$old == "yes")比较好。 -
谢谢大家。 @jhvdz如果“旧”中缺少该值,我希望“新”中缺少该值。我目前对其进行编码的方式是,如果“旧”中缺少它,则“新”中将其设置为零,但这是我要解决的问题。
-
@Rui Barradas。 q1-q5 都是单独的列。如果它们中的任何一个值为“是”,那么我将新变量设为“1”。如果所有值都丢失,我想将 z 设置为丢失。如果所有值都是“否”,我想将 z 设置为“0”。谢谢!