我在以下任务中遇到了几个问题:
我有向量w=c(1,4,8,8,6,3,11,24,16)
和k=9
下一个任务是打印字符串索引(从w),其中最近的数字到k。
下一个代码打印出唯一的一个索引(向量w的第5或第6个字符串),并且不考虑向量具有两个相同的数字--8更接近于k = 9。但是需要打印所有相关索引(在这种情况下为5和6 - 相应字符串的数量)。如何打印所有相关索引?
dt = data.table(w, val = w)
setkey(dt,w)
dt[J(k), roll = "nearest"]
d1=dt[J(k), .I, roll = "nearest", by = .EACHI]
d1[,2]
答案 0 :(得分:1)
我会做类似下面的事情:
w <- c(1,4,8,8,6,3,11,24,16)
k <- 9
distances <- abs(k-w)
which(distances == min(distances))