【发布时间】:2016-07-01 19:32:42
【问题描述】:
我的数据具有所需的范围,但进入了被认为过高或过低的区域。我希望能够将点太高或太低的实例分组为单独的实例。 我在这里做了一些假数据:
library(dplyr)
library(ggplot2)
set.seed(123432)
dat <- data.frame(value = sample(20:600, 20, replace=F))%>%
mutate(ord = row_number(),
cat = ifelse(value > 350, "high",
ifelse(value < 90, "low", "good")),
extreme = ifelse(cat=="high" & value > lag(value) & value > lead(value), "Peak",
ifelse(cat=="low" & value < lag(value) & value < lead(value), "Trough", "")))
这里有一张图表:
ggplot(dat, aes(x = ord, y = value))+
geom_point()+
geom_line()+
geom_hline(yintercept = 300, color="blue")+
geom_hline(yintercept = 120, color="blue")+
coord_fixed(.025)
我知道如何在 excel 中对这些高低区域进行分组,但似乎无法在 R 中复制它。我想制作这样的东西(尽管 E1 将是“系列”):
注意 E 列基于 C 列,每个系列可能有多个峰/谷。
我希望这很清楚,你们可以提供帮助。如果可能的话,我想坚持使用 dplyr。
谢谢。
【问题讨论】:
-
我不清楚你真正想要什么。剧情?单独的数据框?单独的数据框列?为我们定义“单独的实例”。
-
我想在我的数据框中添加一列,看起来像 excel 示例中的列 E。每次“cat”变量发生变化时,它的值都会增加。
标签: r ggplot2 time-series dplyr