我有关于R中新变量创建的两个基本问题。我将展示一些代码,希望有人可以帮助解答这些问题!
Entity import = new Entity(CrmImport.EntityLogicalName);
import.Attributes.Add(CrmImport.OptionSets.ModeCode, new OptionSetValue(CrmImport.OptionSets.ModeCodeValues.Option2_Update));
import.Attributes.Add(CrmImport.Fields.Name, "UpdateImport");
import.Id = service.Create(import);
在这段代码中,我创建一个名为“new”的新变量,如果变量“old”等于yes或者等于0,则该变量等于1.但是在变量“old”中我丢失了数据(表示为-99,-98,NAN)。那么我如何解释缺少值?
第二个问题是关于使用“OR”语句。
df0$new <- ifelse(df0$old=="yes",1,0)
如果参与者对5个问题(q1-q5)中的任何一个回答“是”,我想创建一个等于1的新变量z。所以我想编码它看起来像:z = 1如果q1 == 1或q2 == 1或q3 == 1或q4 == 1或q5 == 1.如果q1-q5都不等于1想要将z设置为0.然而,这也会带来如上所述的缺失值的问题。非常感谢!
答案 0 :(得分:0)
您可以执行以下操作。
首先,摆脱-99, -98
和NaN
。我假设在问题中,当你写NAN
时,你的意思是NaN
将NA
值编码为NA
。
is.na(df0$old) <- (df0$old %in% c(-99, -98)) | is.nan(df0$old)
现在,请注意FALSE/TRUE
被编码为0/1
并将逻辑结果强制转换为类integer
。
df0$new <- as.integer(df0$old == "yes")
df0$z <- as.integer(q1 == "yes" | q2 == "yes" | q3 == "yes" | q4 == "yes" | q5 == "yes")