保持R范围内的最大值

时间:2013-10-15 04:28:42

标签: r

示例代码:

x <- c(10,15,21,24,32,48,56,78,87,98)
y <- c(2,3,4,5,2.1,3.1,1,1.5,1.9,2.6)
df <- data.frame(x,y)
df

对不起我对编码比较新。我昨晚得到了一些帮助,通过找到每10个单位段的最大Y来缩小大数据帧,但事实证明这可能导致错误。

我很抱歉,我对编程仍然相对较新。

所以,我的阈值为say,y&gt; 1.91。如何在X中找到10个单位的最大Y?所以,我的想法是我会找到max(y)&gt;阈值然后删除10个单位内的所有x行。然后找到第二高的y(必须大于阈值)并删除10个单位内的所有x。我会这样做,直到我得到一个高于阈值且至少相差10个单位的所有值的列表。

你们可以帮我编码吗?

1 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题。这是你想要做的吗?

require(data.table)
dt <- data.table(df)
threshold <- 1.91
dt <- dt[y>threshold, ]
ans <- dt[0,]

while (nrow(dt)>0){
  ans <- rbindlist(list(ans, dt[which.max(y),]))
  xval <- ans[nrow(ans),x]
  dt <- dt[x<(xval-10)|x>(xval+10)]
}
ans