2014-12-02 2 views
0

나는 다른 방법으로 많은 해결책을 찾았지만이 방법은 없다. 나는 행렬의리스트를 가지고 있고 그것들을 벡터로 가질 필요가있다. 각 요소를 가져 와서 이름을 지정하고 벡터에 넣을 수 있습니다. 그러나 더 좋은 방법이 있다고 확신합니다!벡터의 매트릭스 터닝 목록

zerooklein <- lapply(1:10, function(x){genweb(10, 5, dens=2)}) 
zeroomittel <- lapply(1:10, function(x){genweb(10, 20, dens=2)}) 
zeroogroß <- lapply(1:10, function(x){genweb(10, 80, dens=2)}) 

이들은 내 목록입니다.

size <- c(this should contain all the singel matrices) 
sizef <- sapply(size, function(x) nested(get(x), method="ALL")) 
plot(capscale(formula = scale(sizef) ~ 1)) 

이것은 내가 그들과 함께하고 싶은 것입니다.

+0

당신의 질문이 이해가 나타나지 않습니다 최종 매트릭스 플롯 할 수 있습니다. 'nested' 함수는 벡터가 아닌'web'을 인수로 취합니다. 다른 사람들이 당신이 성취하고자하는 것을 이해할 수 있도록 더 많은 맥락을 제공해야합니다. 더 좋은 점은 중간 개체가 어떻게 보이는지에 대한 예제를 제공하는 것입니다. – cdeterman

+0

여러 매트릭스 (zeroo)에 여러 메트릭 (ALL)을 적용하고 싶습니다. 그래서'size'는 singel 행렬의 벡터입니다. 중첩 된 행렬은 각 행렬을 가져 와서 모든 행렬을 적용 할 수 있습니다. 그런 다음 각 행렬에 대해 계산 된 메트릭이있는 벡터를 반환해야합니다. – pitri

답변

0

'zeroo ...'개체가 벡터가 아니라는 것에주의하십시오. 목록의 이름을 사용하려면 해당 벡터를 명시 적으로 만듭니다. 이 전체 프로세스의 유일한 벡터는 다음 한 줄입니다.

size <- c("zerooklein", "zeroomittel", "zeroogroß") 

이제 나머지는 모든 목록과 행렬입니다. 'zeroo ...'객체 각각은 행렬의 목록이므로 nested으로 전달하기 위해 반복되어야합니다. 따라서 각 'zeroo ...'객체뿐만 아니라 'zeroo ...'내의 각 행렬을 반복해야하므로 이중 루프가 필요합니다. 다음 호출이 작업을 수행합니다.

sizef <- lapply(size, function(x) sapply(get(x), function(y) nested(y, method="ALL"))) 

당신은 그것이 나타납니다 함께 결과가 목표 아니다 'rbind'자동으로 다른 두 sapply 문을 것입니다 사용할 수 없습니다. 따라서이 시점에서 세 개의 행렬 목록이 있습니다. 이들을 do.call과 병합 할 수 있습니다.

size_merged <- do.call("cbind", sizef) 

이제

plot(capscale(scale(size_merged) ~ 1))