【发布时间】:2017-07-05 08:15:05
【问题描述】:
我正在尝试在我的数据框中创建几个新列,这些列取决于几个现有列的内容。
在伪代码中,参数基本上是“如果VariableA为1,而VariableB为2或VariableC为3,则令VariableD=1,如果不满足这些条件,则为0。
我尝试过使用 for 循环和 ifelse 语句,但没有成功。我知道我的命令的逻辑是正确的,但是在将其转换为 R 语法时出现了一些错误,这并不奇怪,因为我大约一周前才开始使用 R。
以下是我尝试过的简化版本...
Data$VariableD
它运行没有错误,但在检查变量D的内容时,所有单元格都用“NA”填充
这是一个使用类似数据集的示例,请注意第 1 行符合条件。 (我无法制作合适的表格来挽救我的生命,但我认为这是可以解释的。
|变量A|变量B|变量C|变量D|
|1|吉姆 | 2 | 4 |不适用 |
|2|汤姆 | 2 | 3 |不适用 |
|3|汤姆 | 3 | 4 |不知道 |
【问题讨论】:
-
在我看来代码没有问题。您能否发布一个显示该问题的示例数据集?您可以使用
dput向我们展示数据。 -
您的代码在逻辑上是正确的。您需要检查 R 中
&和&&运算符之间的区别。 -
这不会引起你的问题,但你有
VariableA == 3而不是VariableC == 3 -
我更新了问题以包含示例数据集并稍微更改代码示例以更准确地反映我正在尝试做的事情。
标签: r for-loop if-statement na