또는 벡터를 연속 멤버 쌍으로 분할하고 목록에서 결합하는 방법은 무엇입니까?각 요소가 주어진 벡터의 연속 구성원 쌍인 목록을 작성하십시오.
Supose 당신은 벡터 내 목표는이 작업은 여러 경로 세그먼트를 대표하도록되어
path <- list(c(1,5), c(5,9), c(9,13), c(13,17))
다음 목록을 작성하는 것입니다
1 5 9 13 17
입니다
map <-seq(from = 1, to = 20, by = 4)
에게 주어진다 그지도가 우리에게 따라야한다고 sugesting하고있다. 1에서 17까지 이동하려면 먼저 첫 번째 경로 (path[1]
)를 취한 다음 두 번째 경로 (path[2]
)를 끝까지 가져와야합니다.
내 첫 번째 시도는 저를 인도 :
path <- split(aux <- data.frame(S = map[-length(map)], E = map[-1]), row(aux))
그러나 나는이 auxiliar 데이터 프레임 을 작성하고 초기 벡터합니다 (map
)이 큰에있을 때 성능 감소를 피하지 않고 할 수있을 거라고 생각. 또한, 꽤 괜찮은 경고 메시지를 반환하지만, 나는 그것을 피하는 것을 좋아합니다.
mod_map <- c(map, map[c(-1,-length(map))])
mod_map <- sort(mod_map)
split(mod_map, ceiling(seq_along(mod_map)/2))
내 map
.
제가 이미 두 가지 해결책을 가지고 있기 때문에 나는 너무 많이 묻고 있습니다. 그러나 제 3의 솔루션을 사용할 수 있습니까? 그렇다면 제 첫 번째 솔루션과 같이 데이터 프레임을 사용하지 않아도되고 제 2의 솔루션과 달리 원본 맵을 사용할 수 있습니까? (- 더 나은 함수 이름을 사용하지 - '지도'가 purrr
에서 함수이다)
빠른 것 아니면 ((cbind (지도 [- 길이 (지도),지도 [-1]), 서열 분할'에 의해'지도'를 방지 할 수있는 사용할 수 있습니다 연장 h (map) -1))' – Sotos