2015-01-29 1 views
2

다음 데이터가 있습니다. x은 벡터 목록이며 indices은 색인 목록입니다. 내가 원하는 무엇do.call, lapply 또는 mapply를 사용하여 벡터 목록에서 R sub를 선택 하시겠습니까?

x = list(c("a", "b", "c", "a"), c("b", "x", "a", "c")) 
indices = list(c(1, 2), c(3, 4)) 

indices 벡터를 기반으로하는 벡터로부터 선택 목록 x 및 하위 내에서 표현되는 각 벡터를 통해 단계입니다. 그래서 예상 된 결과가

a,b 
a,c 

이다 나는 mapply

> mapply('[',x,indices) 
    [,1] [,2] 
[1,] "a" "a" 
[2,] "b" "c" 

그것을 시도했지만 내가이 원하는 일을하지 이잖아. 어떤 포인터? 미리 감사드립니다.

답변

3

가까운 사이. 인덱싱 후 요소를 단일 문자열로 축소 할 수 있습니다. 여기에 paste(., collapse=', ')에 대한 래퍼 (toString)를 사용하고 있습니다.

f1 <- function(x,y) toString(x[y]) 
mapply(f1,x,indices) 
#[1] "a, b" "a, c" 
관련 문제