问题
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)
来源:https://stackoverflow.com/questions/45117125/r-knnimputation-giving-error