R 将两条曲线之间的数据子集

R 将两条曲线之间的数据子集,r,dataframe,ggplot2,shiny,r-plotly,R,Dataframe,Ggplot2,Shiny,R Plotly,我有一个散点图,我想能够过滤散点图的数据 在这张图中,您可以看到四个图。1) 中间绿色曲线,2)上部黑色曲线,3)下部黑色曲线,4)蓝色散点图 我以数据框的形式提供了所有这些: 蓝色散点图: df <- mtcars geom_point(df, aes(x,y), color = 'blue') 上曲线: geom_smooth(formula=y+1~x, method='loess', color='gray20', se=FALSE, size=0.5) 下曲线 geom_sm

我有一个散点图,我想能够过滤散点图的数据

在这张图中,您可以看到四个图。1) 中间绿色曲线,2)上部黑色曲线,3)下部黑色曲线,4)蓝色散点图

我以数据框的形式提供了所有这些:

蓝色散点图:

df <- mtcars
geom_point(df, aes(x,y), color = 'blue')
上曲线:

geom_smooth(formula=y+1~x, method='loess', color='gray20', se=FALSE, size=0.5)
下曲线

geom_smooth(formula=y-1~x, method='loess', color='gray20', se=FALSE, size=0.5)
我想用黑色曲线过滤蓝色数据点,这样只有剩下的蓝色数据点应该在这两条黑色线之间,并且应该移除异常值

我尝试使用
which
filter
Subset
函数。但是,它不起作用,它没有呈现我想要的输出


最后,我想要这两条黑线之间的分散数据。

我发布了一个解决方案,因为这个问题可能对其他人有所帮助。这里的总体思想是点的条件着色。基本上,如果它们落在曲线之间,我们给它们一种颜色,否则颜色将是
NA

这里,我假设我们有曲线函数,可以在我们的
ifelse
中使用。如果不是这样,那么我们需要找到最合适的。您可以在本帖中找到有关的有用答案


x请让您的问题重现:包括您的代码和数据;对数据使用dput(…您的数据…
)。请查看并获取指导。是的,但我们如何提取这些行之间的数据并删除这些行之外的数据?@Kshitij15571您需要澄清您的问题。正如Peter提到的,我们需要一个可复制的数据示例来提供有效的解决方案。请编辑您的问题并添加一些数据。更重要的是,再次回答这些问题,作为对问题的编辑。你有直线方程吗?如果是这样,方程是什么?如果你想删除它们,而不是仅仅在图表中不显示它们,我们可以使用我在回答中提到的相同条件对数据进行子集。但为了提供一个解决方案,我们需要一个可复制的数据示例,以及我在之前的评论中列出的问题的答案。我尝试过对数据集进行子集设置,但它不起作用。另外,我对编码非常陌生,我不知道如何发布可复制的示例。@Kshitij15571阅读有关创建可复制示例的评论中与您共享的链接
geom_smooth(formula=y-1~x, method='loess', color='gray20', se=FALSE, size=0.5)