我有一个带有空结果的 if 语句,但在尝试运行代码时不断收到错误。
例如,我的 df 有两个数值列,值范围从 0 到 100。我想基于以下伪代码创建一个新列:
ifelse (df$column1== 0, NULL, df$column2/df$column1(
我已经尝试了switch((,但是当我这样做时,我收到一个错误: EXPR 必须是长度为 1 的向量
交换机代码:
df$column3 = switch((df$column1[i] != 0) + 1,
NULL,
df$column2/df$column1)
当我尝试将其放入 for 循环中以分别查看每条记录时,我收到另一个错误(类似于我尝试 ifelse(( 时遇到的错误(: df$列 3[i] 中的错误 <- n : 替换长度为零
对于循环:
for (i in 1:nrow(df)) {
n = switch((df$column1[i] != 0) + 1,
NULL,
df$column2/df$column1)
df$column3[i] = n
}
如果它不满足某些条件,我如何调整它以在列中设置 NULL。
任何建议都会非常有帮助!谢谢!
似乎您的伪代码基本上在那里?
下面是 R 附带的iris
数据集的示例:
iris$newcol = ifelse(
iris$Sepal.Length < 5,
NA_real_,
iris$Sepal.Length/iris$Sepal.Width
)
iris