【发布时间】:2014-07-12 04:45:59
【问题描述】:
在某个时间点,我遇到了这个问题......并解决了它。但是,由于这是一个反复出现的问题,我现在已经忘记了解决方案,希望这个问题能够为其他人和我提供澄清:)
我正在创建一个基于多个问题的答案的变量。每个问题可以有三个值:1、2 或 NA。对于每个观察,1 和 2 是互斥的。
我只是想创建一个变量,它是每个人用“1”编码的选项的组合,并根据该代码给它一个值。
假设我有这个df:
ID var1 var2 var3 var4
1 1 2 NA NA
2 NA NA 2 1
3 2 1 NA NA
4 2 NA 1 NA
然后我尝试根据以下语句重新编码:
df$var <-
ifelse(
as.numeric(df$var1) == 1,
"Gut instinct",
ifelse(
as.numeric(df$var2) == 1,
"Data",
ifelse(
as.numeric(df$var3) == 1,
"Science",
ifelse(
as.numeric(df$var4) == 1,
"Philosophy",
NA
)
)
)
)
但是,此代码仅部分基于“ifelse”进行编码。例如,df$var 可能观察到“直觉”和“哲学”,但 var2 和 var3==1 的编码仍然是 NA。
对为什么会发生这种情况有任何想法吗?
【问题讨论】:
-
也许你应该显示你的预期输出
标签: r if-statement