从数据框的第一行返回一个值,其中所有剩余行符合特定条件

时间:2016-08-24 14:06:49

标签: r

我有大约800个线性模型都遵循相同的模式,它们对于大多数长度是线性的,但是在某个点它可以开始指数地起飞(但不总是)。我想确定这种情况何时开始发生(如果有的话)。例如:

df <- data.frame(Length = c(10,20,30,40,50,60,70,80,90,100),
                 Error = c(0.012, -0.013, 0.010,0.001,-0.005, 0.06, 0.0021, 0.07, 0.10, 0.15))


Length    Error
10        0.012
20        -0.013
30        0.010
40        0.001
50        -0.005
60        0.06
70        0.0021
80        0.07
90        0.10
100       0.15

我想确定线性模型分解的长度值。所以我希望它之后的长度,所有误差都> 0.05。

所以在这种情况下,我想确定70的长度值,因为我们拥有的所有长度&gt; 70的误差> 0.05(总是在正方向,所以我不关心| error |&gt; 0.05)。

2 个答案:

答案 0 :(得分:0)

您要查找的是列小于0.05的最大值

newdata <- df[order(Length),] tail(subset(newdate, error < 0.05)$Length,1)

这应该吐70但我假设长度已经按顺序

答案 1 :(得分:0)

之前回答的詹克斯让我思考,我认为一个相当简单的解决方案就是。

df <- data.frame(Length = c(10,20,30,40,50,60,70,80,90,100),
                Error = c(0.012, -0.013, 0.010,0.001,-0.005, 0.06, 0.0021, 0.07, 0.10, 0.15))
x <- df$error <0.05
max(df$length[x])