I have a data frame df, each of its columns is plotted as a simple scatter plot. I want to select a single point in each graph by identify() and store it in a list s - one graph after another. Here is my approach:

x1 <- c(12:4, 5:8, NA, NA)
x2 <- c(15:8, 9:15)
df <- data.frame(x1, x2)

fun <- function(z){
    y <- na.omit(z)
    x <- seq(1:length(y))
    plot(x,y)
    s <- identify(x, n = 1, plot = F)
}

lapply(df, fun)  

I'm getting the following error after selecting a point in the first graph:

> warning: no point within 0.25 inches

But it seems that the point in the second plot is detected properly. What I'm doing wrong?

有帮助吗?

解决方案

You will need to add one more argument to identify, so it knows which y-coordinates to look for.

s <- identify(x = x, y = y, n = 1, plot = F)

After changing this, your function worked fine for me.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top