Return 不适用除法

Return NA for division

我正在尝试定义一个新变量,它是另外两个变量的除法。

df$NewVariable <- df$OldVariable1 / (df$OldVariable2/100)

OldVariable2 包含 NA。我想要 NewVariable 到 return NAs,只要 OldVariable2NA。但是,当我在创建它后执行 summmary(df$NewVariable) 时,我得到 Inf 的平均值和最大值。我如何告诉 R 生成 NAs,以便我的新 NewVariable 不受任何 Infs 的影响?

试试这个:

df <- data.frame(OldVariable1 = c(2,3,4,4),
                 OldVariable2 = c(3,NA,0,1.5))
df$NewVariable <- ifelse(df$OldVariable2 == 0, NA, 
                         df$OldVariable1 / (df$OldVariable2/100))

结果:

> df
  OldVariable1 OldVariable2 NewVariable
1            2          3.0    66.66667
2            3           NA          NA
3            4          0.0          NA
4            4          1.5   266.66667

感谢@Gregor Thomas,他指出当你将一个数字除以 NA 时,或者 NA/NA 你会得到 NA,所以第一个条件不是必需的,你可以简化它。