web-dev-qa-db-fra.com

Mise en place d'une matrice 3D dans R et accès à certains éléments

J'essaie de mettre en place une matrice 3D dans R. Je suppose que c'est facile. Cependant, je n'ai pas trouvé de solution jusqu'à présent. Disons que nous voulons créer une matrice 365x6x4. La façon dont je peux changer une entrée dans la matrice est également cruciale. Disons que nous voulons affecter la valeur 204 à l'élément [304,5,2]. J'apprécie beaucoup votre réponse!

merci! meilleur, F

30
Fabian Stolz

Essaye ça:

ar <- array(someData, c(365, 6, 4));  
ar[304,5,2] <- 204;

someData pourrait être

someData <- rep(0, 365*6*4);  

ou encore mieux peut-être

someData <- rep(NaN, 365*6*4);  
32
Havelock

Une matrice est un cas spécial à deux dimensions d'un tableau. (Citant l'aide de ?matrix).

Donc, vous avez besoin de array:

x <- array(rep(1, 365*5*4), dim=c(365, 5, 4))
str(x)
num [1:365, 1:5, 1:4] 1 1 1 1 1 1 1 1 1 1 ...

Définissez une valeur spécifique:

x[305, 5, 2] <- 204

Imprimer une tranche:

x[305, , ]
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    1    1    1
[3,]    1    1    1    1
[4,]    1    1    1    1
[5,]    1  204    1    1
13
Andrie