2012-11-26 223 views
3

向量是否有可能中的R創建向量的矩陣?我的意思是這個矩陣的元素必須是向量。例如mat[1,3] == c(6,8,9)矩陣中的R

我必須創建40×40矩陣,我需要手動填充它。

回答

5

這不是一個matrix而是array

myarray <- array(1:24, c(2,4,3)) 
myarray[1,3,] 
#[1] 5 13 21 
+0

我不能使用此。我需要40x40矩陣,我需要手動填充矩陣。 – trood

+2

當然你可以使用它。一個數組只是矩陣概念的一個更高維的擴展,並且或多或少地以相同的方式工作。 – Roland

+0

如果這不適合你,它很可能是一個好主意,提供更多的背景,並解釋爲什麼* *您不能使用此。要像上面那樣手動填充數組,你只需要說'myarray < - array(dim = c(40,40,3));墊[1,3] < - C(6,8,9)'等等... –

7

那麼,你可以添加尺寸到列表中,以便它類似於一個矩陣,其中的元素可以是您想要的任何東西,包括不同長度的向量。例如:

foo <- as.list(numeric(2^2)) 
dim(foo) <- c(2,2) 

# Assignment per element: 
foo[[1,1]] <- 1:4 
foo[[1,2]] <- 1:10 
foo[[2,1]] <- "foo" 
foo[[2,2]] <- list(foo) 

給你一個怪異的對象:

> foo 
    [,1]  [,2]  
[1,] Integer,4 Integer,10 
[2,] "foo"  List,1  

,其中每個元素基本上是一個載體。儘管如此,這還不是做這件事的最好方式。如果矢量的長度相同,則Roland所描述的陣列更合適。

+1

如果我是正確的第一行有可能會產生誤導的錯誤..它應該是富< - as.list(數字(2 * 2))爲2的結果的情況下是相同的,但對於任何其他它是不同的... – Picarus