如何将超出范围的data.frame的值定义为NA?
我目前正在尝试创建一个例程来帮助我清理数据集。对于某些数值/整数变量,存在允许值的范围(最小值和最大值)。不包含在该范围内的值应声明为NA 我当前的代码:如何将超出范围的data.frame的值定义为NA?,r,optimization,R,Optimization,我目前正在尝试创建一个例程来帮助我清理数据集。对于某些数值/整数变量,存在允许值的范围(最小值和最大值)。不包含在该范围内的值应声明为NA 我当前的代码: df$variable[df$variable < min.range && df$variable > max.range] <- NA df$variable[df$variablemax.range]您可以像这样获得备选方案的执行时间: #processing time of option 1 sys
df$variable[df$variable < min.range && df$variable > max.range] <- NA
df$variable[df$variablemax.range]您可以像这样获得备选方案的执行时间:
#processing time of option 1
system.time({
df$variable[df$variable < min.range && df$variable > max.range] <- NA
})
#processing time of option 2
system.time({
df$variable[!df$variable %in% c(min.range:max.range)] <- NA
})
#选项1的处理时间
系统时间({
df$variable[df$variablemax.range]您可以像这样获得备选方案的执行时间:
#processing time of option 1
system.time({
df$variable[df$variable < min.range && df$variable > max.range] <- NA
})
#processing time of option 2
system.time({
df$variable[!df$variable %in% c(min.range:max.range)] <- NA
})
#选项1的处理时间
系统时间({
df$variable[df$variablemax.range]您的第一种方法是错误的,原因有二:
- 首先,值不能是
和>max.range
,您需要一个或
- 其次,不需要只检查第一个值的双精度
&
或|
因此,您需要将第一行代码替换为:
df$variable[df$variable < min.range | df$variable > max.range] <- NA
df$variable[df$variablemax.range]您的第一种方法是错误的,原因有二:
- 首先,值不能是
和>max.range
,您需要一个或
- 其次,不需要只检查第一个值的双精度
&
或|
因此,您需要将第一行代码替换为:
df$variable[df$variable < min.range | df$variable > max.range] <- NA
df$variable[df$variablemax.range]@CathG修复了这个问题,谢谢!)代码中不需要c(…)
。@CathG修复了这个问题,谢谢!;)代码中不需要c(…)
。