首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LOCF估算及如何填充缺失项

LOCF估算及如何填充缺失项
EN

Stack Overflow用户
提问于 2021-02-19 15:28:46
回答 1查看 141关注 0票数 0

我正在处理下面的数据集,并试图填充VISUAL52变量中缺失的条目,并使用LOCF方法(最后一次观察向前推进)来估算数据。

代码语言:javascript
复制
library(readr)
library(mice)
library(finalfit)
library(Hmisc)
library(lattice)
library(VIM)
library(rms)
library(zoo)

> hw3
# A tibble: 240 x 11
   treat LINE0 LOST4 LOST12 LOST24 LOST52 VISUAL0 VISUAL4 VISUAL12 VISUAL24 VISUAL52
   <fct> <dbl> <dbl>  <dbl>  <dbl>  <dbl>   <dbl>   <dbl>    <dbl>    <dbl>    <dbl>
 1 2        12     1      3     NA     NA      59      55       45       NA       NA
 2 2        13    -1      0      0      2      65      70       65       65       55
 3 1         8     0      1      6     NA      40      40       37       17       NA
 4 1        13     0      0      0      0      67      64       64       64       68
 5 2        14    NA     NA     NA     NA      70      NA       NA       NA       NA
 6 2        12     2      2      2      4      59      53       52       53       42
 7 1        13     0     -2     -1      0      64      68       74       72       65
 8 1         8     1      0      1      1      39      37       43       37       37
 9 2        12     1      2      1      1      59      58       49       54       58
10 1        10     0     -4     -4     NA      49      51       71       71       NA
# ... with 230 more rows

我不知道我是否做得好,但我尝试用这种方式描述VISUAL52变量的样本大小、平均值和标准误差(只需让我知道使用不同的函数是否更好)。

代码语言:javascript
复制
numSummary(hw3[,"VISUAL52", drop=FALSE], groups=hw3$treat, 
           statistics=c("mean", "se(mean)", "quantiles"), 
           quantiles=c(0,.25,.5,.75,1))

binnedCounts(hw3[hw3$treat == '1', "VISUAL52", drop=FALSE])
# treat = 1

binnedCounts(hw3[hw3$treat == '2', "VISUAL52", drop=FALSE])
# treat = 2

但是,关于估算部分,我已经从数据表包中运行了函数nafill(),但是我得到了您可能会看到的错误,aftyer将完整()函数合并起来。

代码语言:javascript
复制
 library(data.table)
 imp_locf <-  nafill(hw3$VISUAL52, "locf", nan=NA)
 data_imputed <- complete(imp_locf)

*emphasized text*Error in UseMethod("complete_") : 
      no applicable method for 'complete_' applied to an object of class "c('double', 'numeric')"

我想知道为什么函数会返回此错误,以及是否有人可能知道使用locf方法来填充数据集中缺少的数据的替代方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 18:26:03

如果要在数据集上应用locf,可以使用imputeTS包。

代码语言:javascript
复制
 library(imputeTS)
 hw3 <- na_locf(hw3)
 hw3

或者,如果您只想对VISUAL52变量使用LOCF:

代码语言:javascript
复制
 library(imputeTS)
 hw3$VISUAL52 <- na_locf(hw3$VISUAL52)
 hw3

另外,请记住,其他算法可能更适合您的数据。imputeTS提供了多个函数,特别是用于时间序列计算(imputeTS中的更多算法)。你已经使用过的鼠标包有更多用于横截面数据的算法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66280400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档