Return 不适用除法
Return NA for division
我正在尝试定义一个新变量,它是另外两个变量的除法。
df$NewVariable <- df$OldVariable1 / (df$OldVariable2/100)
OldVariable2
包含 NA
。我想要 NewVariable
到 return NA
s,只要 OldVariable2
是 NA
。但是,当我在创建它后执行 summmary(df$NewVariable)
时,我得到 Inf
的平均值和最大值。我如何告诉 R 生成 NA
s,以便我的新 NewVariable
不受任何 Inf
s 的影响?
试试这个:
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,所以第一个条件不是必需的,你可以简化它。
我正在尝试定义一个新变量,它是另外两个变量的除法。
df$NewVariable <- df$OldVariable1 / (df$OldVariable2/100)
OldVariable2
包含 NA
。我想要 NewVariable
到 return NA
s,只要 OldVariable2
是 NA
。但是,当我在创建它后执行 summmary(df$NewVariable)
时,我得到 Inf
的平均值和最大值。我如何告诉 R 生成 NA
s,以便我的新 NewVariable
不受任何 Inf
s 的影响?
试试这个:
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,所以第一个条件不是必需的,你可以简化它。