我正在尝试在数据框中创建几个新列,这些列以几个现有列的内容为条件。
在伪代码中,参数基本上是"如果VariableA为1且VariableB为2或VariableC为3,则使VariableD = 1,如果不满足这些条件则使其为零。
我尝试过使用for循环和ifelse语句,但没有运气。我知道我的命令的逻辑是正确的,但我正在做一些错误,将其转换为R语法,这并不令人惊讶,因为我刚刚开始使用R一周前。
以下是我尝试过的简化版本......
数据$ VariableD&lt; - ifelse(数据$ VariableA ==&#39; Jim&#39;&amp;&amp;(Data $ VariableB == 2 || Data $ VariableC == 3),1,0)< / p>
它运行没有错误,但在检查VariableD的内容后,所有单元格都填充了&#34; NA&#34;
以下是使用类似数据集的示例,通知第1行符合条件。 (我不能制作一张合适的桌子来挽救我的生命,但我认为这是可以解释的。
| 3 |汤姆| 3 | 4 | NA |
答案 0 :(得分:0)
你能提供你的变量类吗?可能是类的问题...(例如,你为变量A放了== "1"
,但如果变量A是类,则chr应为Data$VariableD <- ifelse(Data$VariableA == 1 & (Data$VariableB == 2 | Data$VariableA == 3), 1, 0)
)。
你能否提供完整的循环?
否则,请尝试:
<select id="continent">
<option value="-1">continent</option>
<option value="1">US</option>
<option value="2">UK</option>
</select>