R : knnImputation Giving Error

2019-04-12 13:19发布

问题:

Getting below error in R coding.

in my Brand_X.xlsx dataset, there are few NA values which I am trying to compute using KNN imputation but I am getting below error. whats wrong here? Thanks!

> library(readxl)
> Brand_X <- read_excel("Brand_X.xlsx")
> str(Brand_X)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   101 obs. of  8 variables:
 $ Rel_price_lag5: num  108 111 105 103 109 104 110 114 103 108 ...
 $ Rel_price_lag1: num  110 109 217 241 855 271 234 297 271 999 ...
 $ Rel_Price     : num  122 110 109 217 241 855 271 234 297 271 ...
 $ Promo         : num  74 29 32 24 16 31 22 7 32 22 ...
 $ Loy_HH        : num  37 26 35 30 26 26 31 20 34 20 ...
 $ Nonloy_HH     : num  46 70 55 54 54 59 55 56 57 45 ...
 $ Week          : num  56 57 58 59 60 61 62 63 64 65 ...
 $ Share_X       : num  25 23 50 33 22 44 29 17 41 27 ...
> 
> library(DMwR)
> 
> anyNA(Brand_X)
[1] TRUE
> 
> knnImputation(Brand_X)
Error: Column indexes must be at most 1 if positive, not 22, 25, 37, 8, 47, 2, 50, 40, 52, 67
>

回答1:

See my previous answer

I came into the problem today,and I found that we should transform our tbl object into data.frame object!!This is one disgusting point that different packages do not have compatibility.

#check your df class,I think your df is actually as tbl object
class(df)
df_new <- as.data.frame(df)