2016-02-24 158 views
0

我有一个帧- [R列找到最接近的值

J = data.frame(Entry = c(100, 5, 10, 20, 35)) 

对于每个记录我想找到最接近的值,并用

Entry | nearest 
100 | 35 
5 | 10 
20 | 10 
35 | 20 

最终我看着数据表的代码Find closest value in a vector with binary search

但因为对于Entry我试图找到最接近的值,它只是返回我输入的向量。我怎样才能做到这一点?

+0

我想你要找的答案在[这里](https://stat.ethz.ch/pipermail/r-help/2013-September/359974.html) – Sotos

回答

1
J <- data.frame(Entry = c(100, 5, 10, 20, 35), 
       X = sapply(J$Entry, function(x){ 
    temp <- J$Entry[!J$Entry == x] 
    temp[which.min(abs(temp - x))] 
})) 

> J 
    Entry X 
1 100 35 
2  5 10 
3 10 5 
4 20 10 
5 35 20 

是这样的?