0

我正在处理以下数据集,并尝试填充 VISUAL52 变量的缺失条目,通过 LOCF 方法(最后一次观察结转)输入数据。

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 变量的样本量、平均值和标准误差(让我知道我是否会最好使用不同的功能)。

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

但是,至于插补部分,我已经从 data-table 包中运行了函数 nafill(),但是我得到了你在运行 complete() 函数后可能会看到的错误。

 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 方法估算数据并填充数据集中缺失的数据。

4

1 回答 1

1

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

 library(imputeTS)
 hw3 <- na_locf(hw3)
 hw3

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

 library(imputeTS)
 hw3$VISUAL52 <- na_locf(hw3$VISUAL52)
 hw3

另请记住,其他算法可能更适合您的数据。imputeTS 提供了多种功能,特别是对于时间序列插补(imputeTS 中有更多算法)。您似乎已经使用的鼠标包具有用于横截面数据的附加算法。

于 2021-02-26T18:26:03.350 回答