Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将超出范围的值设置为NA_R - Fatal编程技术网

R 将超出范围的值设置为NA

R 将超出范围的值设置为NA,r,R,我有一个类似下面的数据集。 传感器每分钟评估一次数据。 体重是一个因变量。时间是指小时/分钟。这些数据将积累多年。 问题出在第[4]行。在这一行,权重有一个奇怪的值,它超出了这个值 范围,由传感器错误引起。您必须提醒,任何人都无法预料何时会出现奇怪的值 我要做的是使程序执行如下。 1.使用方法,将varianceset range的范围设置为10到50 2.使用fori语句,检查varianceweight是否在范围内。 3.当方差超出范围时,将权重[i]输入为NA ID TIME

我有一个类似下面的数据集。 传感器每分钟评估一次数据。 体重是一个因变量。时间是指小时/分钟。这些数据将积累多年。 问题出在第[4]行。在这一行,权重有一个奇怪的值,它超出了这个值 范围,由传感器错误引起。您必须提醒,任何人都无法预料何时会出现奇怪的值

我要做的是使程序执行如下。 1.使用方法,将varianceset range的范围设置为10到50 2.使用fori语句,检查varianceweight是否在范围内。 3.当方差超出范围时,将权重[i]输入为NA

 ID      TIME   WEIGHT
HM001   1223    24.9
HM001   1224    25.2
HM001   1225    25.5
HM001   1226    12233
HM001   1227    25.7
HM001   1228    27.1

如果数据位于名为d的数据框中,则可以使用:

d$WEIGHT[d$WEIGHT<10 | d$WEIGHT>50] <- NA

对于这种任务,您不应该使用循环,而应该使用向量索引。

您可以在和is.na中使用,因为我无法抗拒:

fooweight<-runif(1e6)
wfun1<-function(x) x[x<.1 | x>.5] <- NA
wfun2<-function(x)  is.na(x) <- (x < .10 | x > .50)
microbenchmark(wfun1(fooweight),wfun2(fooweight),times=100)

Unit: milliseconds
              expr      min       lq   median       uq      max
1 wfun1(fooweight) 45.00671 47.68492 49.27120 50.28852 152.4313
2 wfun2(fooweight) 47.74992 51.05204 51.89938 53.00629 156.0306
对不起,斯文,你输给朱巴大约5%:-

fooweight<-runif(1e6)
wfun1<-function(x) x[x<.1 | x>.5] <- NA
wfun2<-function(x)  is.na(x) <- (x < .10 | x > .50)
microbenchmark(wfun1(fooweight),wfun2(fooweight),times=100)

Unit: milliseconds
              expr      min       lq   median       uq      max
1 wfun1(fooweight) 45.00671 47.68492 49.27120 50.28852 152.4313
2 wfun2(fooweight) 47.74992 51.05204 51.89938 53.00629 156.0306