使用条件LOCF估算NA

用户名

我更新了一个新的不同问题。这次我想从Oxy获取列Oxy2。

ID Oxy  Y   Oxy2
1  NA 2010   NA
1   0 2011    0
1  NA 2012   NA
1   1 2013    1
1  NA 2014    1
1  NA 2015    1
1  -1 2016    1
2   0 2011    0
2  NA 2012   NA
2   1 2013    1
2  -1 2014    1
3   0 2012    0
3  -1 2013   -1
3  NA 2014   NA
4  -1 2010   -1
4   1 2011    1
4  -1 2012    1
4  -1 2013    1
4   0 2014    1
4  NA 2015    1

基本上,当我的Oxy变量的先前值为0或-1时,我需要保留NA(如果有),并用1替换出现在第一个1之后的所有内容。

再次感谢您的建议。

苏里曼
library(dplyr)
library(zoo)
df %>% 
   group_by(ID) %>% 
   mutate(Ins1=na.locf(ifelse(is.na(Ins) & lag(Ins)==0, 999, Ins), na.rm = FALSE), Ins2=na_if(Ins1, 999))
   #one step version
   #mutate(Ins1 = na_if(na.locf(ifelse(is.na(Ins) & lag(Ins)==0, 999, Ins), na.rm = FALSE), 999))

# A tibble: 8 x 5
# Groups:   ID [2]
     ID   Ins     Y  Ins1  Ins2
  <int> <int> <int> <dbl> <dbl>
1     1     0  2010     0     0
2     1    NA  2011   999    NA
3     1     1  2012     1     1
4     1    NA  2013     1     1
5     1    NA  2014     1     1
6     2     0  2011     0     0
7     2     0  2012     0     0
8     2    NA  2013   999    NA

更新:为了解决-1的问题,我想补充一个小的变化到什么@ user12492692在编辑曾建议,即取代了|%in%

df %>% 
  group_by(ID) %>% 
  mutate(Ins1 = na.locf(ifelse(is.na(Ins) & lag(Ins) %in% c(0,-1), 999, Ins), na.rm = FALSE), 
         Ins2 = na_if(Ins1, 999))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用线性逼近估算NA观测值的边界

来自分类Dev

使用行两边的平均值估算na

来自分类Dev

根据条件估算时间

来自分类Dev

替换na.locf.xts(与多列xts一起使用时速度极慢)

来自分类Dev

使用na.locf扩展特定国家/变量对的最后观察值

来自分类Dev

在data.table中将na.locf函数(zoo包)与.SD一起使用

来自分类Dev

na.locf使用组将NA填充到最大间隙,即使间隙>最大间隙

来自分类Dev

如何使用mlr3估算数据并使用NA值进行预测?

来自分类Dev

等效于sparkR中的na.locf

来自分类Dev

用LOCF进行条件插补

来自分类Dev

na.locf删除主要的NA,保留其他

来自分类Dev

如何为特定条件估算值?

来自分类Dev

通过填充转发/ LOCF在SQL中的一系列连续行上估算一列?

来自分类Dev

Rcpp中的na.locf和inverse.rle

来自分类Dev

na.locf将数据从数字转换为字符

来自分类Dev

如何将na.locf()用于因子“输入”?

来自分类Dev

Rcpp中的na.locf和inverse.rle

来自分类Dev

根据价值使用其他估算器

来自分类Dev

使用R估算滚动风险价值(VaR)

来自分类Dev

使用ARIMA模型估算缺失值

来自分类Dev

使用数据集的R代码估算参数

来自分类Dev

如何使用AndroidSDK更改估算信标UUID

来自分类Dev

使用Python估算缺少的日期和值

来自分类Dev

使用ARIMA模型估算缺失值

来自分类Dev

使用AWS估算服务器成本

来自分类Dev

R:通过随机选择女性或男性来估算NA

来自分类Dev

如果值等于NA,则根据R中的份额进行估算

来自分类Dev

根据出现时间估算分类变量的 NA

来自分类Dev

如何简单地使用Amelia在R中估算NA值,然后将数据集分为70:30的数据集和训练集?

Related 相关文章

热门标签

归档