【发布时间】:2020-05-16 10:08:30
【问题描述】:
我有一个结果为空的 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$column3[i]
for循环:
for (i in 1:nrow(df)) {
n = switch((df$column1[i] != 0) + 1,
NULL,
df$column2/df$column1)
df$column3[i] = n
}
如果不满足某些条件,我如何调整它以在列中设置 NULL。
任何建议都会非常有帮助!谢谢!
【问题讨论】:
-
NULL在大多数向量中不是合法值。请改用NA。
标签: r dataframe if-statement null