R 条件缺失值插补
仅当缺失值为2个或更少的连续缺失值时,如何插补缺失值,并在R中使用na.locf将其他缺失值保留为NAs? 例如: 第一个NA由之前可用的1个进行插补,最后3个NA不应进行插补。我们可以使用data.table中的rleid创建组,使用ave计算每个组的长度,仅当值为NA且组的长度小于等于2时才使用NA.locfR 条件缺失值插补,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(
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