2014-09-21 4 views
0

두 개의 배열이 있습니다. A와 B가 있으며 함수에서 반환하려고합니다. 나는 A의를 사용하려고 할 때 원래의 기능에서 제외하고,반환 된 목록에 개별 NULL 차원이 표시됩니다.

A <- list1[1] 
B <- list1[2] 

이 멋지게 일 :이 다시 목록을 분할 않은 원래의 기능에서

list1 <- list(A,B) 
return(list1) 

: 나는 list 명령을 사용 다른 수학, 그것은 차원이 일치하지 않는다고 나에게 말했다. 목록을 사용했기 때문에 두 배열에 모두 NULL 차원이 있음을 알 수 있습니다. list1 자체에 NULL 차원이 있습니다.

R의 함수에서 두 개의 배열을 반환하고 배열의 크기를 보존 할 수있는 방법에 대한 아이디어는 있습니까?

감사합니다.

EDIT 1 : 저는 k = 2 등분하기위한 코드를 만들고 중심 좌표의 A => 2x4 배열과 0/1 값의 b => 50x2 배열을 만듭니다. dput(list1): (이게 무슨 뜻인지 아니 아이디어) R의 목록에 대한

list(structure(list(A = c(5.25555555555556, 4.71304347826087), 
B = c(3.67037037037037, 3.12173913043478), C = c(1.5037037037037, 
1.41739130434783), D = c(0.288888888888889, 0.191304347826087 
)), .Names = c("A", "B", "C", "D"), row.names = 1:2, class = "data.frame"), 
structure(c(1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 
1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 
1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
1, 1, 0, 0, 1, 0, 1, 0, 0), .Dim = c(50L, 2L))) 
+1

저는 혼란 스럽습니다. 최소한의 예를 제공해주십시오. 함수로부터 반환 된리스트를 원한다면, 예를 들어'foo <- function (x) {A <- x [1]; B <- x [2]; c (A, B)}; foo (list1)'시작한 것과 똑같은 목록을 반환합니다. NULL을 얻는다면 문제는 k-means 계산에있을 수 있습니다. 또는'[''[['' –

+0

예, [[worked. 감사! – fineashell

답변

3

의 출력, 당신은 목록 요소의 내용에서 얻을 수있는 이중 대괄호 연산자 [[을 사용해야합니다. 단일 괄호 사용 [목록을 반환합니다. 다음은 그 예입니다.

A <- matrix(rnorm(100), ncol=10) 
B <- matrix(rnorm(100), ncol=10) 
list1 <- list(A,B) 
A_list <- list1[1] 
A_vector <- list1[[1]] 
is.list(A_list) 
dim(A_list) 
identical(A, A_vector) 
dim(A_vector) 
관련 문제