R 如何在y==80的直线图中获得2个数据集的x值?

R 如何在y==80的直线图中获得2个数据集的x值?,r,plot,R,Plot,我有两个单独的.csv文件,已加载到R(3.1.2版)中,并使用plot()函数生成了一个包含两个文件数据的简单绘图,如下所示: plot(db1[ ,2],db1[ ,5], type = "l", xlab = "area", ylab = "represented", main = "title", frame.plot = FALSE, col = 'blue', pch = 20) lines(db2[ ,3], db2[ ,7], col="red", pch = 20, ) ab

我有两个单独的.csv文件,已加载到R(3.1.2版)中,并使用
plot()
函数生成了一个包含两个文件数据的简单绘图,如下所示:

plot(db1[ ,2],db1[ ,5], type = "l", xlab = "area", ylab = "represented", main = "title", frame.plot = FALSE, col = 'blue', pch = 20) 
lines(db2[ ,3], db2[ ,7], col="red", pch = 20, )
abline(h=80,col= 'black',lty=2)
这是情节:

我想做的是获得两个数据集的x值,其中y==80。数据集中不存在这些值-我需要对它们进行插值。可以找到一个示例数据集


通过查阅文献,我可以看到我可以使用
识别
定位
并使用鼠标查找y值,但我希望得到比这些函数所能提供的更准确的值。有什么我可以添加到绘图代码中,以获得x的特定值,其中y==80?如蒙协助,将不胜感激

由于x值和y值都直接来自
df
,因此您只需将数据帧子集即可

# Blue plot
df[df[, 5] == 80, 2]

# Red plot
df[df[, 7] == 80, 3]
对于蓝线,它获取
df
的第二列的值,即
df[,2]
,这样第五列
df[,5]
等于80。红线也是如此

按行对数据帧进行子集设置的语法如下所示:

df[<row subsetting>, <column selection>]
df[,]

行子集可以是要选择的索引列表,也可以是在我们希望选择的索引处
TRUE
的逻辑向量。在这种情况下,我们使用后者。列选择只是一个要返回的列列表,在本例中,我们只得到一个列。

我只想指出,值80可能从未实际实现过。在这种情况下,您可能对最接近80的值感兴趣,或者对合适的x值的近似值感兴趣。@blakeoft:没错。我想,如果这是OP的一个担忧,那么它应该在问题中得到解决。这个答案只针对那些被特别问到的问题。啊,我的错。这些值实际上不在df本身中。我需要插值这个值。很抱歉留下了我遗漏的关键信息。我已经编辑了蛋白石,谢谢你@AlexA。用于添加打印图像。非常感谢。@HoboSci:在这种情况下,最好提供一些示例数据。插值可以简单到平均两个小于或大于80的最近值(取决于样本大小),也可以复杂得多。