【发布时间】:2020-01-18 08:10:08
【问题描述】:
我使用 elseif 来清理现实世界数据库中存在输入错误的数据。
假设我想清理一个我知道在现实世界中不能超过 100 的 X 值,所以我只想将高于 100 的所有值转换为不包含在分析中的 NA 值。
所以我会这样做:
df$x <- ifelse(df$x > 100, NA, df$x)
这会将所有高于 100 的值变为 NA 并保留其他值
这感觉很麻烦,而且当我使用很长的真实变量名时代码不可读。
有没有更短的方法来做我想做的事情?
谢谢!
r 中有什么方法可以缩短这个豌豆
【问题讨论】:
-
ifelse本身就是“if-else”的简写。我也没有看到可读性问题。如果你想要一个替代方案,可能会有很多(评估任何可用作三元运算符的东西),但 ifelse 最适合它的用例。 -
@chmod777
ifelse不仅仅是if-else的简写。前者是vectorized,后者不是。例如,参见this post。 -
我知道
ifelse是if-else的向量等价物,但我暗示的只是它比我之前评论的第一行中的 if-else 块短。跨度>
标签: r