我有一个数据框如下:
date accumulated_visits
01-01 102
01-02 134
01-03 148
01-04 159
01-05 162
01-06 175
我想要一个函数,它可以找到最近的条目,给定一个特定的访问号码。例如,我想找到累计访问量达到150的日期。我希望返回
01-03 148
是否有buildin函数来处理它?</ p>
答案 0 :(得分:6)
您可以计算绝对差值并使用which.min
查找最小差异的索引
df[which.min(abs(150-df$accumulated_visits)),]
# date accumulated_visits
#3 01-03 148
或者,当accumulated_visits
排序后,您也可以使用findInterval
df[findInterval(150, df$accumulated_visits),]
# date accumulated_visits
#3 01-03 148
数据强>
df = structure(list(date = c("01-01", "01-02", "01-03", "01-04", "01-05",
"01-06"), accumulated_visits = c(102L, 134L, 148L, 159L, 162L,
175L)), .Names = c("date", "accumulated_visits"), class = "data.frame", row.names = c(NA,
-6L))