【发布时间】:2014-11-26 07:47:22
【问题描述】:
我正在编写一个由 ifelse 语句组成的函数,该语句取决于函数输入的不同列中的值:
counter=function(df){
df$total2=ifelse(df$x>=100,df$total+10,df$total)
df$total3=ifelse(df$y>=200,df$total2+10,df$total2)
}
我这样做的方式似乎效率很低,但我还没有想到避免覆盖计算的方法。
但更紧迫的是,我想在某些 dfs 上使用此功能并没有 x 列和 y 列。当我在这些上运行它时,会出现以下错误;
$<-.data.frame(*tmp*, "total3", value = logical(0)) 中的错误:
替换有 0 行,数据有 74
有没有办法重写它以允许没有所有列的数据框?
谢谢。
【问题讨论】:
-
当列丢失时您希望的行为是什么?请提供reproducible example 示例输入和所需输出。
-
旁注:看起来你可以从使用
with中受益 -
我希望它什么都不做 - 所以如果该列不存在,该函数基本上会忽略该命令。