I am trying to keep spatial Lines objects intersecting a spatial polygon in R. The `intersect` function from`raster` package is doing actually a crop. But what I need is to keep the lines intersecting a polygon (but not to crop them). In ArcMap there was a possibility for that (something like select by attributes using a polygon).

Some code I created:

    library(sp)
    library(raster)
    
    # from the sp vignette:
    l1 = cbind(c(-35,-32, -31, -18, -15, 0, 22, 24 ), c(38, 39, 41, 44, 45, 48, 55, 66))
    rownames(l1) = letters[1:8]
    l1a = cbind(l1[,1]+25,l1[,2]+25)
    rownames(l1a) = letters[1:8]
    l2 <- l1-66
    rownames(l2) = letters[1:8]
    l3 <- l2 - 28.2
    rownames(l3) = letters[1:8]
    
    
    Sl1 = Line(l1)
    Sl2 = Line(l2)
    Sl3 = Line(l3)
    S1 = Lines(list(Sl1, Sl1a), ID="a")
    S2 = Lines(list(Sl2), ID="b")
    S3  = Lines(list(Sl3), ID  = 'c')
    Sl = SpatialLines(list(S1,S2, S3))
    
    
    poly <- extent(c(-45, 15, -15, 57))
    poly <- as(poly, 'SpatialPolygons')  
    
    
    plot(Sl, col = c("red", "blue", 'green'))
    plot(poly, add  = T, lwd = 2) # here I should keep the red and blue lines
    
    intersected <- raster::intersect(Sl, poly)
    
    plot(intersected)
    plot(poly, add=T) # I managed only to crop the lines which is not exactly what I wanted.

Thanks!