示例代码:
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个单位的所有值的列表。
你们可以帮我编码吗?
答案 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