尝试使用 switch() 在 R 中的 if else 语句中返回 NULL 值时出错



我有一个带有空结果的 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

相关内容

  • 没有找到相关文章

最新更新