2016-02-24 172 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 

是這樣的?