以下是示例数据帧:
df1 <- read.table(text = "DT odczyt.1
'2023-08-16 06:57:15' 482.307
'2023-08-16 06:57:30' 482.307
'2023-08-16 06:57:45' 482.311
'2023-08-16 06:58:00' NA
'2023-08-16 06:58:15' NA
'2023-08-16 06:58:30' 482.315
'2023-08-16 06:58:45' 482.315
'2023-08-16 06:59:00' 482.318
'2023-08-16 06:59:15' 482.324
'2023-08-16 06:59:30' NA
'2023-08-16 06:59:45' NA
'2023-08-16 07:00:00' NA
'2023-08-16 07:00:15' NA
'2023-08-16 07:00:30' NA
'2023-08-16 07:00:45' NA", header = TRUE)
我想要完成数据,但仅当NA出现在最多三个连续行时.当有更多丢失的数据时,NA仍然存在.
tidyr::fill
连续运行.为一个组添加一个条件似乎也不合理(我发现了这样一个例子Fill NA with condition based on the same column).
此外,该列中的最后一个值可以是NA.
我也考虑了na.approx
,而不是fill
.na.approx
更好,但我不知道这是否可能,因为最后一行的NA
预期结果
df1 <- read.table(text = "DT odczyt.1
'2023-08-16 06:57:15' 482.307
'2023-08-16 06:57:30' 482.307
'2023-08-16 06:57:45' 482.311
'2023-08-16 06:58:00' 482.311
'2023-08-16 06:58:15' 482.311
'2023-08-16 06:58:30' 482.315
'2023-08-16 06:58:45' 482.315
'2023-08-16 06:59:00' 482.318
'2023-08-16 06:59:15' 482.324
'2023-08-16 06:59:30' NA
'2023-08-16 06:59:45' NA
'2023-08-16 07:00:00' NA
'2023-08-16 07:00:15' NA
'2023-08-16 07:00:30' NA
'2023-08-16 07:00:45' NA", header = TRUE)