Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:将值增加到最大值的子集,不包括减少的_R_Subset - Fatal编程技术网

R:将值增加到最大值的子集,不包括减少的

R:将值增加到最大值的子集,不包括减少的,r,subset,R,Subset,我做了很多试验,其中一个变量增加到最大感兴趣值,然后减少到一个起点。我该如何保持观察值的最大值。谢谢 比如说 Trial A B C 1 2 4 1 1 4 3 2 1 3 7 3 1 3 3 2 1 4 1 1 2 4 1 1 2 6 2 2 2 3 1 3 2 1 1 2 2 7 3 1 ... 因此,我们将检查C上的最大值,并保留如下所示 Trial A B C 1 2 4 1 1 4

我做了很多试验,其中一个变量增加到最大感兴趣值,然后减少到一个起点。我该如何保持观察值的最大值。谢谢

比如说

Trial A B C
    1 2 4 1
    1 4 3 2
    1 3 7 3
    1 3 3 2
    1 4 1 1
    2 4 1 1
    2 6 2 2
    2 3 1 3
    2 1 1 2
    2 7 3 1
    ...
因此,我们将检查C上的最大值,并保留如下所示

Trial A B C
    1 2 4 1
    1 4 3 2
    1 3 7 3
    2 4 1 1
    2 6 2 2
    2 3 1 3
    ...

最终,我会有一个较低的截止值,并且可能会改变我所说的最大值,但本质上,以上是目标。

可能不是最有效的解决方案,但这里是使用
数据的一个尝试。表

library(data.table)
setDT(df)[, .SD[1:which.max(C)], by = Trial]
#    Trial A B C
# 1:     1 2 4 1
# 2:     1 4 3 2
# 3:     1 3 7 3
# 4:     2 4 1 1
# 5:     2 6 2 2
# 6:     2 3 1 3
还是为了提高效率

indx <- setDT(df)[, .I[1:which.max(C)], by = Trial]
df[indx$V1]

indx您可以从一个可复制的示例和所需的输出插图开始。是的,我应该有……但我认为这可能是其中一个非常简单的示例。我会考虑编辑。试试
df[c(TRUE,diff(df$c)>=0),]
@DavidArenburg,是的,我想你是对的。@如果第二组的第一次事件比第一组的最后一次事件小,那么从一开始就不起作用了。@nicola我想这是行不通的。我不确定这在真实数据中是否可能,尽管这在您的数据集上工作得很好,除非您能使示例更具可复制性,否则我帮不了您。我的错误…我实际上键入了**SD[1:which.max(df$C)…”。有效。谢谢。
library(dplyr)
df%>%group_by(Trial)%>%slice(1:max(C))