- 较短版本**对于每个
spread_event
,我需要根据现有leaf_wetness_duration
列创建一个新列,即观察到5小时或超过5小时UNINTURRUPTED/CONTINUOUS
干奶期为TRUE。我对每行不感兴趣,我对spread_event
感兴趣。
- 较短版本**对于每个
- 更长的版本**我把植物放在田里一个星期或
spread_event
。天气数据以15分钟的间隔记录,因此每行代表15分钟的持续时间,leaf_wetness_duration
列列出了雨水或相对湿度引起的叶片湿润的持续时间,我想检验孢子是否能在UINTURRPED
干燥期存活5小时或更长时间的假设。因此,如果有1小时干期和1小时湿期,然后是1小时湿/干期,以及5小时或更长的干期,我希望这是假的,因为我只对连续干期感兴趣。我可以计算干期,但不知道如何计算UNINTERRUPTED/CONTINUOUS
干期。
- 更长的版本**我把植物放在田里一个星期或
df %>%
group_by(spread_event) %>%
mutate (dry_period= ???) # spread event with continuous dry period of five hours or more
Spread_event date leaf_wetness_duration
1 8/19/15 7:15 PM 15
1 8/19/15 7:30 PM 2
1 8/19/15 7:45 PM 0
1 8/19/15 8:00 PM 0
1 8/19/15 8:15 PM 0
1 8/19/15 8:30 PM 0
1 8/19/15 8:45 PM 0
1 8/19/15 9:00 PM 0
1 8/19/15 9:15 PM 0
1 8/19/15 9:30 PM 0
1 8/19/15 9:45 PM 0
1 8/19/15 10:00 PM 0
1 8/19/15 10:15 PM 0
1 8/19/15 10:30 PM 0
1 8/19/15 10:45 PM 3
在上面的示例中,我可以说UNINTURREPTED
叶片湿润持续时间为180分钟或3小时(12行零湿度-每行代表15分钟的持续时间,12 * 15 = 180分钟)。我希望在R中而不是手动执行此操作,因为数据集非常庞大。是否有一种方法可以直接计算20行的leaf_wetness_duration == 0
(leaf_wetness_duration == 0
之间无湿润期)?
谢谢
1条答案
按热度按时间bxgwgixi1#
我们可以使用
rle
函数来查找0的最长连续串。如果您需要此类运行的计数,则可以使用
count = with(rle(leaf_wetness_duration), sum(lengths[values == 0] >= 20))
使用此示例数据