Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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_Dataframe - Fatal编程技术网

R 如何对具有相同事件的连续行进行分组并找到平均值?

R 如何对具有相同事件的连续行进行分组并找到平均值?,r,dataframe,R,Dataframe,提前谢谢。我们可以从数据中创建一个带有rleid的分组变量。表,使用该表获取“pt”的平均值,并返回“Event”的第一个值 Event Value 1 2.5 2 4 1 12.5 2 4 我们可以从数据中创建一个带有rleid的分组变量。表,使用它来获取'pt'的平均值,并返回'Event'的第一个值 Event Value 1 2.5 2 4 1 12.5 2 4 另一个选项是使用cumsum: with(group, t

提前谢谢。

我们可以从
数据中创建一个带有
rleid
的分组变量。表
,使用该表获取“pt”的
平均值
,并返回“Event”的
第一个

Event Value
1     2.5
2     4
1     12.5
2     4

我们可以从
数据中创建一个带有
rleid
的分组变量。表
,使用它来获取'pt'的
平均值
,并返回'Event'的
第一个

Event Value
1     2.5
2     4
1     12.5
2     4

另一个选项是使用
cumsum

with(group, tapply(pt, with(rle(Event),
     rep(seq_along(values), lengths)), FUN = mean))
#    1    2    3    4 
#  2.5  4.0 12.5  4.0 

另一个选项是使用
cumsum

with(group, tapply(pt, with(rle(Event),
     rep(seq_along(values), lengths)), FUN = mean))
#    1    2    3    4 
#  2.5  4.0 12.5  4.0 
dfs %>% 
mutate(gr = cumsum(Event != lag(Event, default = 0))) %>% 
group_by(gr, Event) %>% summarise(mean_Value = mean(Value)) %>% 
ungroup()