在 R 中创建变量 - 两个问题
Creating variables in R- two issues
我有两个关于在 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 | )
如果参与者回答 "yes" 5 个问题 (q1-q5) 中的任何一个,我想创建一个等于 1 的新变量 z。所以我想把它编码成这样:z = 1 if q1 ==1 OR q2 == 1 OR q3 == 1 OR q4 == 1 OR q5 == 1. If none of q1-q5等于 1 而不是我想将 z 设置为等于 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
并将逻辑结果强制为 class integer
.
df0$new <- as.integer(df0$old == "yes")
df0$z <- as.integer(q1 == "yes" | q2 == "yes" | q3 == "yes" | q4 == "yes" | q5 == "yes")
第一部分的另一个解决方案。
library(dplyr) #because of left_join function
df1 <- data.frame(old = c("yes", "no"), new = c(1, 0))
df0 <- left_join(df0, df1)
我有两个关于在 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 | )
如果参与者回答 "yes" 5 个问题 (q1-q5) 中的任何一个,我想创建一个等于 1 的新变量 z。所以我想把它编码成这样:z = 1 if q1 ==1 OR q2 == 1 OR q3 == 1 OR q4 == 1 OR q5 == 1. If none of q1-q5等于 1 而不是我想将 z 设置为等于 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
并将逻辑结果强制为 class integer
.
df0$new <- as.integer(df0$old == "yes")
df0$z <- as.integer(q1 == "yes" | q2 == "yes" | q3 == "yes" | q4 == "yes" | q5 == "yes")
第一部分的另一个解决方案。
library(dplyr) #because of left_join function
df1 <- data.frame(old = c("yes", "no"), new = c(1, 0))
df0 <- left_join(df0, df1)