我正在尝试创建一个以现有列的内容为条件的新列

时间:2017-07-05 08:15:06

标签: r for-loop if-statement na

我正在尝试在数据框中创建几个新列,这些列以几个现有列的内容为条件。

在伪代码中,参数基本上是"如果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行符合条件。 (我不能制作一张合适的桌子来挽救我的生命,但我认为这是可以解释的。

|变量A |变量B |变量C |变量D |

| 1 |吉姆| 2 | 4 | NA |

| 2 |汤姆| 2 | 3 | NA |

| 3 |汤姆| 3 | 4 | NA |

1 个答案:

答案 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>