【发布时间】:2024-01-23 16:26:01
【问题描述】:
我想用对一个或多个其他列 (df$b, df$c) 的数学运算结果更新数据框列 (df$d),条件是另一列 (df$a) 的值.
set.seed(55)
df <- data.frame(a = rnorm(10), b = rnorm(10), c = rnorm(10), d = 0)
df$d[df$a > 0] <- df$b[df$a > 0] / df$c[df$a > 0]
第三行生成 df$d 的预期值。有没有办法更简洁地写这个?我对不需要我重复逻辑索引的选项特别感兴趣。
例如,这种风格的表达式在 Python/Pandas 中有效,并且只需要赋值运算符左侧的一个 '[df$a > 0]' 实例:
df$d[df$a > 0] <- df$b / df$c
感谢您的任何建议。
【问题讨论】: