0
data = matrix(1:12, 3,4)
n=ncol(data)
m=nrow(data)
for (i in 1:m){
for (j in 1:n-1){
missindex = sample(1:n,j)
temp <- data[,-missindex]
distances <- dist(temp)[1:m-1]
similarity <- 1-distances/max(distances)
order_indexes <- order(similarity,decreasing = T)
similarity_order <- similarity[order_indexes]
for (k in 1:m-1){
weights <- similarity_order[1:k]/sum(similarity_order[1:k])
imputedata <- crossprod(data[order_indexes[1:k]+1,missindex], weights)
MAE <- mean(abs(imputedata-data[i,missindex]))
RMSE <- sqrt(mean((imputedata - data[i,missindex])^2))
MAPE <- mean(abs((imputedata-data[i,missindex])/data[i,missindex]))
}
}
}
にゼロになりません。はなぜ私のインデックスが、それは私に次のエラーを与えるR
内部ループで 'j in 1:(n-1)'を使用します。つまり、 'n-1'の前後にカッコを入れます。 'R intro'マニュアルを読んでください。 – Bhas
@Bhasそのループだけではありません。 'k'のループでも。 –
OPには、これは多くの重複を持つ優先順位の問題です。 –