我有两个单独的.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.数据集中不存在这些值 - 我需要对它们进行插值。可以找到示例数据集on my Google Drive here。
通过文献搜索,我可以看到我可以使用identify
或locate
并使用鼠标来查找y值,但我想要比这些函数提供的更准确的值。我可以添加到绘图代码中以获取x的特定值,其中y == 80吗?任何帮助将不胜感激。
答案 0 :(得分:1)
由于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>]
行子集化可以是要选择的索引列表,也可以是我们希望选择的索引处TRUE
的逻辑向量。在这种情况下,我们使用后者。列选择只是要返回的列的列表,在这种情况下,我们只是获得一列。