r - R中整个数据集的回归线(每组两条回归线)
问题描述
我有一个包含三列的数据框,称之为(X,Y,Z)。这样:
- X 是数值变量
- Y 是一个数值变量
- Z是因子变量
我想绘制(使用ggplot2)Y对X并根据因子变量Z制作颜色组。我已经做到了!
现在我需要绘制一些回归线,我知道如何为属于同一类别(即相同因子变量 Z)的每组点绘制回归线。然而,我需要为每个类别绘制两条回归线(可能看起来很奇怪,但在我正在处理的问题中,总是这样做的)。因此,对于每个类别 (Z),我应该有一条由前 n 个元素(属于该类别)计算的回归线和由给定类别中的剩余点组成的第二条回归线,当然这两条线都应该有与它们在给定类别中插入点的颜色相同(即相同的颜色组)。
很感谢任何形式的帮助!先感谢您
解决方案
如果您想要的 x 的两个范围是独立的并且您想要生成 4 条单独的回归线(正如我对您问题的理解),那么您可以指定要在 2 次调用中使用的数据geom_smooth()
。在这里,head()
并tail()
指示您想要回归的 x 值,假设这些点在 df 中排序。如果它们没有被排序,您将需要首先执行此操作(例如,使用arrange()
x 轴上的值调用)。
library(tidyverse)
# some test data with 3 variables: a random response (y), a sequence (x), and a factor (z).
df<-tibble(x = seq(0.5, 25, 0.5),
y = rnorm(50),
z = sample(x = c("A", "B"), replace = T, size = 50))
# a plot with each factor of z coloured and 2 regression lines for each factor
ggplot(df, aes(x, y, colour = z))+
geom_point()+
geom_smooth(data = ~head(df, 30), method = "lm", se = F)+
geom_smooth(data = ~tail(df ,20), method = "lm", se = F)+
theme_minimal()
推荐阅读
- javascript - 在 Electron 中包含两个窗口的两个 html 文件
- flutter - 在颤动中使用导航器后黑屏
- javascript - 如何将拆分数字合并为一个数字?
- flutter - Flutter 向 StatefulWidget 传递数据
- android - 调用 Geocoder 方法时如何显示进度对话框
- scala - 在scala中传递函数调用作为参数,函数首先评估吗?
- java - 我在发送屏幕截图时遇到错误
- java - 使用扫描仪读取“干净”文本文件时是否有任何解析?
- c# - 本地驱动器上的 UWP SharpCompress 访问异常,为什么?
- laravel-7 - 登录过期后laravel aws serverless 419