【发布时间】:2019-09-03 23:49:03
【问题描述】:
我有一个包含“时间”、“状态”和“水位”三列的数据集。时间变量的格式类似于“2007-03-22 06:45:00”并且跨越多年。 status 是一个二元变量,只有两个值“High”或“Low”(您可以想象一个传感器已经测量了很多年,日复一日,一分钟一分钟,并决定测量结果是低还是高)。
time status water_level
2007-03-21 06:20:00 Low 2.4
2007-03-21 19:55:00 Low 2.3
2007-03-21 23:50:00 High 2.1
2016-04-10 19:55:00 Low 3.5
2016-04-11 23:50:00 High 3.6
我的目标是仅当该月的“高”和“低”的数量相等时才计算每个月内的平均水位,否则我希望完全删除该月。
我尝试了 group_by 和 summarise 函数,但无法合并条件并且不知道如何去做。因此,如果有人可以帮助我,我将不胜感激。
mydata <- mydata %>%
group_by(time = floor_date(time, "month")) %>%
if(length(status == 'High') == length(status == 'Low')
{summarize(water_level = mean(water_level)}
else {summarize(water_level = 'NA'}
【问题讨论】:
标签: r