Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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 条件缺失值插补_R_Zoo - Fatal编程技术网

R 条件缺失值插补

R 条件缺失值插补,r,zoo,R,Zoo,仅当缺失值为2个或更少的连续缺失值时,如何插补缺失值,并在R中使用na.locf将其他缺失值保留为NAs? 例如: 第一个NA由之前可用的1个进行插补,最后3个NA不应进行插补。我们可以使用data.table中的rleid创建组,使用ave计算每个组的长度,仅当值为NA且组的长度小于等于2时才使用NA.locf library(data.table) library(zoo) ifelse(ave(x, rleid(x), FUN = length) <= 2 & is.na(

仅当缺失值为2个或更少的连续缺失值时,如何插补缺失值,并在R中使用na.locf将其他缺失值保留为NAs? 例如:

第一个NA由之前可用的1个进行插补,最后3个NA不应进行插补。

我们可以使用data.table中的rleid创建组,使用ave计算每个组的长度,仅当值为NA且组的长度小于等于2时才使用NA.locf

library(data.table)
library(zoo)

ifelse(ave(x, rleid(x), FUN = length) <= 2 & is.na(x), na.locf(x), x)
#[1]  2  1  1  4  4 NA NA NA
我们可以使用data.table中的rleid创建组,使用ave计算每个组的长度,并且仅当值为na且组的长度小于等于2时,才使用na.locf

library(data.table)
library(zoo)

ifelse(ave(x, rleid(x), FUN = length) <= 2 & is.na(x), na.locf(x), x)
#[1]  2  1  1  4  4 NA NA NA
zoo的na.locf有一个“maxgap”参数,因此您可以简单地执行以下操作:

library(zoo)

na.locf(x, maxgap = 2, na.rm = FALSE)
[1]  2  1  1  4  4 NA NA NA
zoo的na.locf有一个“maxgap”参数,因此您可以简单地执行以下操作:

library(zoo)

na.locf(x, maxgap = 2, na.rm = FALSE)
[1]  2  1  1  4  4 NA NA NA
使用软件包zoo中的na.locf使用软件包zoo中的na.locf