找到误差线和直线之间的交点
Finding points of intersection between error bars and a line
我有一个数据框,原始数据分为对应于 x 轴和 y 轴的 2 列。我通过 arrows() 函数(只有垂直的)根据标准偏差添加了误差线,我还使用 abline() 函数绘制了一条 45° 线。
df1 <- data.frame(col1= c(5.37, 2.86, 2.72, 4.62, 5.76, 3.07, 1.35, 6.12),
col2= c(4.06, 4.50, 3.90, 5.62, 4.65, 6.18, -0.31, 8.42))
plot(df1$col1, df1$col2,
xlab="x",
ylab="y",
pch=19,
xlim=c(-2,10),
ylim=c(-2,10),
col="blue")
abline(0,1,lty=1,lwd=2,col="black") # 45° line
df1_sd <- apply(df1, 2, sd)
# Adding vertical arrows (error bars)
arrows(x0=df1$col1, y0=(df1$col2-df1_sd[[1]]),
x1=df1$col1, y1=(df1$col2+df1_sd[[1]]),
code=3, col="blue", angle=90, length=0.1)
我的目标是 select 与 45° 线相交的点(来自数据框),同时考虑到误差条。
作为一个例子,我想从我的输出中删除标记为黄色的两个点(因为它们超出了我的容忍范围)。
能否请您指导我如何实现这一目标?
subset(df1, col1 >col2 - df1_sd[1] & col1< col2 + df1_sd[2])
col1 col2
1 5.37 4.06
2 2.86 4.50
3 2.72 3.90
4 4.62 5.62
5 5.76 4.65
7 1.35 -0.31
请注意,第 6 点和第 8 点已被删除
我有一个数据框,原始数据分为对应于 x 轴和 y 轴的 2 列。我通过 arrows() 函数(只有垂直的)根据标准偏差添加了误差线,我还使用 abline() 函数绘制了一条 45° 线。
df1 <- data.frame(col1= c(5.37, 2.86, 2.72, 4.62, 5.76, 3.07, 1.35, 6.12),
col2= c(4.06, 4.50, 3.90, 5.62, 4.65, 6.18, -0.31, 8.42))
plot(df1$col1, df1$col2,
xlab="x",
ylab="y",
pch=19,
xlim=c(-2,10),
ylim=c(-2,10),
col="blue")
abline(0,1,lty=1,lwd=2,col="black") # 45° line
df1_sd <- apply(df1, 2, sd)
# Adding vertical arrows (error bars)
arrows(x0=df1$col1, y0=(df1$col2-df1_sd[[1]]),
x1=df1$col1, y1=(df1$col2+df1_sd[[1]]),
code=3, col="blue", angle=90, length=0.1)
我的目标是 select 与 45° 线相交的点(来自数据框),同时考虑到误差条。
作为一个例子,我想从我的输出中删除标记为黄色的两个点(因为它们超出了我的容忍范围)。
能否请您指导我如何实现这一目标?
subset(df1, col1 >col2 - df1_sd[1] & col1< col2 + df1_sd[2])
col1 col2
1 5.37 4.06
2 2.86 4.50
3 2.72 3.90
4 4.62 5.62
5 5.76 4.65
7 1.35 -0.31
请注意,第 6 点和第 8 点已被删除