我看了一些类似主题的答案,但不幸的是没有一个奏效。 我有一个时间序列.df,我想将每个ID的连续观测值的最大值仅计算并保留为单独的列。
...在将新列更改为现有.df之后,将使用c(max)
来概括新列,但是暂时而言,无论如何,它都应保留在现有.df中看起来如何。
rle()
是这里的解决方案,还是我需要创建要与rollsum()/rollmax()
一起使用的函数(x)?
谢谢。
先生。 K
dput(df)
structure(list(ID = c("a", "a", "a", "a", "a", "b", "b", "b",
"b", "b", "b"), year = c(2012, 2013, 2014, 2015, 2016, 2010,
2011, 2012, 2013, 2014, 2015), obs = c(1, 1, 0, 1, 0, 1, 0, 1,
1, 1, 1)), class = "data.frame", row.names = c(NA, -11L))
答案 0 :(得分:1)
您可以使用window.onblur = function () {
window.close();
};
进行操作。以R为基数的一种方式是
rle
答案 1 :(得分:0)
在data.table
中,我们可以使用rleid
获取连续出现的ID,使用table
获取计数并从每个组中选择max
。
library(data.table)
setDT(df)[, max_conc := max(table(rleid(obs))), by = ID]
df
# ID year obs max_conc
# 1: a 2012 1 2
# 2: a 2013 1 2
# 3: a 2014 0 2
# 4: a 2015 1 2
# 5: a 2016 0 2
# 6: b 2010 1 4
# 7: b 2011 0 4
# 8: b 2012 1 4
# 9: b 2013 1 4
#10: b 2014 1 4
#11: b 2015 1 4