[英]"Sandwiching" Values Between Rows
我有這個數據集:
set.seed(111)
row_num = 1:100
variable = rexp(100,1/100)
sandwich = data.frame(row_num, variable)
sandwich = sandwich[order(sandwich$variable),]
假設我有一些新的數據點:
new_point = 4.1
我想確定數據中最接近此 new_point (4.1) 的兩行 - 一行略大於 4.1,另一行略小於 4.1。
我想到了這個:
sandwich$diff = abs(sandwich$variable - new_point)
sandwich = sandwich[order(sandwich$diff),]
final_rows = sandwich[c(1,2),]
我不確定這是否是解決此問題的正確且最有效的方法 - 有人可以對此發表評論嗎?
謝謝!
findInterval
也有一個選項
i1 <- findInterval(new_point, sandwich$variable)
-檢查
> sandwich[i1:(i1+1),]
row_num variable
40 40 3.643575
8 8 6.459048
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.