这是一个示例数据框:
test = data.frame('id'=c('1','2','3'),'value'=c(4,6,8),'score'=c(5,7,9))
test
id value score
1 1 4 5
2 2 6 7
3 3 8 9
我正在为每条记录寻找一个标记:
我确实经历了一些软件包(例如here和here)来进行2D插值的反距离加权,但是我觉得我的问题方向不正确。有人可以给我任何提示吗?预先感谢!
答案 0 :(得分:1)
使用给出的提示
test = data.frame('id'=c('1','2','3'),'value'=c(4,6,8),'score'=c(5,7,9))
weight <- outer(test$value, test$value, function(a,b) 1/abs(a-b))
for(i in 1:length(test$score)){
test$mark[i] <- sum(test$score[-i]*weight[-i,i])/sum(weight[-i,i])
}