标签: locf

如何用相邻值替换数据帧中的NA(缺失值)

862 2006-05-19 6.241603 5.774208     
863 2006-05-20 NA       NA      
864 2006-05-21 NA       NA      
865 2006-05-22 6.383929 5.906426      
866 2006-05-23 6.782068 6.268758      
867 2006-05-24 6.534616 6.013767      
868 2006-05-25 6.370312 5.856366      
869 2006-05-26 6.225175 5.781617      
870 2006-05-27 NA       NA     
Run Code Online (Sandbox Code Playgroud)

我有一个数据框x像上面的一些NA,我想用相邻的非NA值填充,如2006-05-20它将是平均19和22

问题是怎么回事?

r missing-data locf imputation

17
推荐指数
1
解决办法
7067
查看次数

识别R中连续重叠的段

我需要将重叠的段聚合成一个范围内的所有连接段.

请注意,简单的foverlaps无法检测非重叠但已连接的段之间的连接,请参阅示例以进行说明.如果在我的情节中我的部分下雨,我正在寻找干燥的地面.

到目前为止,我通过迭代算法解决了这个问题,但我想知道这个问题是否有更优雅,更直接的前进方式.我肯定不是第一个面对它的人.

我正在考虑非平等滚动连接,但是要实现它

library(data.table)
(x <- data.table(start = c(41,43,43,47,47,48,51,52,54,55,57,59), 
                  end = c(42,44,45,53,48,50,52,55,57,56,58,60)))

#     start end
#  1:    41  42
#  2:    43  44
#  3:    43  45
#  4:    47  53
#  5:    47  48
#  6:    48  50
#  7:    51  52
#  8:    52  55
#  9:    54  57
# 10:    55  56
# 11:    57  58
# 12:    59  60

setorder(x, start)[, i := .I] # i is just a helper for plotting segments …
Run Code Online (Sandbox Code Playgroud)

grouping r overlap data.table locf

8
推荐指数
2
解决办法
280
查看次数

限制zoo包中的na.locf

我想对一个变量进行最后一次观察,但最多只能进行 2 次观察。也就是说,对于 3 个或更多 NA 的数据差距,我只会将最后一个观察结果用于接下来的 2 个观察结果,而将其余的作为 NA。

如果我使用 来执行此操作,则zoo::na.locfmaxgap参数意味着如果间隙大于 2,则不会替换 NA。甚至不是最后 2. 有没有其他选择?

x <- c(NA,3,4,5,6,NA,NA,NA,7,8)
zoo::na.locf(x, maxgap = 2) # Doesn't replace the first 2 NAs of after the 6 as the gap of NA is 3. 
Desired_output <- c(NA,3,4,5,6,6,6,NA,7,8)
Run Code Online (Sandbox Code Playgroud)

r zoo na locf

4
推荐指数
2
解决办法
373
查看次数

PostgreSQL 中是否实现了最后观察结转 (LOCF)?

PostgreSQL 中是否实现了最后观察结转 (LOCF) 数据插补方法?
如果没有,我该如何实现这个方法?

postgresql missing-data locf imputation

3
推荐指数
1
解决办法
1744
查看次数

最后一次观察由小组在多个栏目上进行

我有一个数据集,随着时间的推移观察多个患者及其诊断.有9个不同的虚拟变量,每个都代表一个特定的诊断,命名为例如L40,L41,K50,M05等.

如果虚拟变量中存在缺失值,我希望患者继续使用最后一个非缺失值,这样一旦患者接受诊断,它将继续进行后续观察.

我开始使用动物园包中的na.locf函数.

diagdata <- originaldata[,grep("^patient|^ar|^edatum|^K|^L|^M",colnames(originaldata))]

require(zoo)
require(data.table)

diagnosis <- data.table(diagdata)

diagnosis[,L40:=na.locf(L40),by=patient]
Run Code Online (Sandbox Code Playgroud)

这实现了我所期待的,但仅限于所讨论的列(L40).有没有办法将上述内容应用于所有相关的诊断栏,即以K,L和M开头的列?

r data.table locf

3
推荐指数
1
解决办法
1477
查看次数

na.locf删除领先的NAs,保留其他人

na.locfzoo包中的功能有疑问.在下面的数据框架中,我想删除领先的NA(1987年,1988年),但保留前一年(1993年)的有效值.

Year     X
1987     NA
1988     NA
1989     2
1990     5
1991     9
1992     16
1993     NA
1994     27
1995     36
Run Code Online (Sandbox Code Playgroud)

有没有人有这个问题的解决方案?

r zoo na locf

1
推荐指数
1
解决办法
673
查看次数

R中所有NA的最后一次观察结转(LOCF)

我想用 R 中的最后观察结转 (LOCF) 方法替换所有 NA 值。我拥有的数据集如下:

Value1        Value2           Value3          Group
100           56               82              Group1
150           NA               97              Group2
NA            66               NA              Group3
120           NA               NA              Group4
Run Code Online (Sandbox Code Playgroud)

我想创建以下数据集:

Value1        Value2           Value3          Group
100           56               82              Group1
150           56               97              Group2
150           66               97              Group3
120           66               97              Group4
Run Code Online (Sandbox Code Playgroud)

任何有关如何做到这一点的见解将不胜感激。

r dataframe dplyr locf

0
推荐指数
2
解决办法
85
查看次数

标签 统计

locf ×7

r ×6

data.table ×2

imputation ×2

missing-data ×2

na ×2

zoo ×2

dataframe ×1

dplyr ×1

grouping ×1

overlap ×1

postgresql ×1