Sorkin, John
2023-Dec-08 22:57 UTC
[R] Convert two-dimensional array into a three-dimensional array.
Colleagues I want to convert a 10x2 array: # create a 10x2 matrix. datavals <- matrix(nrow=10,ncol=2) datavals[,] <- rep(c(1,2),10)+c(rnorm(10),rnorm(10)) datavals into a 10x3 array, ThreeDArray, dim(10,2,10). The values storede in ThreeDArray's first dimensions will be the data stored in datavalues. ThreeDArray[i,,] <- datavals[i,] The values storede in ThreeDArray's second dimensions will be the data stored in datavalues. ThreeDArray[,j,] <- datavals[,j] The data stored in ThreeDArray[,,1] will be 1, The data stored in ThreeDArray[,,2] will be 2. . . . The data stored in ThreeDArray[,,10] will be 10. I have no idea how to code the coversion of the 10x2 matrix into a 10,2,10 array. I may be able to acomplish my mission by coding each line of the plan described above, but there has to be a more efficient and elegant way to accompish my goal. Many thanks for your help! John John David Sorkin M.D., Ph.D. Professor of Medicine, University of Maryland School of Medicine; Associate Director for Biostatistics and Informatics, Baltimore VA Medical Center Geriatrics Research, Education, and Clinical Center;? PI?Biostatistics and Informatics Core, University of Maryland School of Medicine Claude D. Pepper Older Americans Independence Center; Senior Statistician University of Maryland Center for Vascular Research; Division of Gerontology and Paliative Care, 10 North Greene Street GRECC (BT/18/GR) Baltimore, MD 21201-1524 Cell phone 443-418-5382
Bert Gunter
2023-Dec-08 23:51 UTC
[R] Convert two-dimensional array into a three-dimensional array.
OK. I'm not getting what you want, so feel free to ignore this if you think I've missed the point completely and don't want to waste your time. Won't be my first time clueless. A 3-D array can be thought of as as a "pile" of 2-D flats, so a 10 x 2 x 10 array consists of 10 2-d flats, each 10 x 2. So tell me what you want the first 10x2 flat to contain, then the second, etc. Here is a print representation of a 2 x 4 x 3 array that might help:> array(1:24, dim = c(2,4,3)), , 1 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8 , , 2 [,1] [,2] [,3] [,4] [1,] 9 11 13 15 [2,] 10 12 14 16 , , 3 [,1] [,2] [,3] [,4] [1,] 17 19 21 23 [2,] 18 20 22 24 FWIW, it sounds to me like you just do something like:> dval <- matrix(1:8, nrow = 2) > dval[,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8> ar <- array(dval, dim = c(2,4,3)) > ar, , 1 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8 , , 2 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8 , , 3 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8 since the 3rd array index itself provides the values you refer to. But this doesn't make sense to me, so I've probably misinterpreted. Cheers, Bert On Fri, Dec 8, 2023 at 2:58?PM Sorkin, John <jsorkin at som.umaryland.edu> wrote:> Colleagues > > I want to convert a 10x2 array: > # create a 10x2 matrix. > datavals <- matrix(nrow=10,ncol=2) > datavals[,] <- rep(c(1,2),10)+c(rnorm(10),rnorm(10)) > datavals > > into a 10x3 array, ThreeDArray, dim(10,2,10). > > The values storede in ThreeDArray's first dimensions will be the data > stored in datavalues. > ThreeDArray[i,,] <- datavals[i,] > > The values storede in ThreeDArray's second dimensions will be the data > stored in datavalues. > ThreeDArray[,j,] <- datavals[,j] > > The data stored in ThreeDArray[,,1] will be 1, > The data stored in ThreeDArray[,,2] will be 2. > . . . > The data stored in ThreeDArray[,,10] will be 10. > > I have no idea how to code the coversion of the 10x2 matrix into a 10,2,10 > array. > I may be able to acomplish my mission by coding each line of the plan > described above, > but there has to be a more efficient and elegant way to accompish my goal. > > Many thanks for your help! > John > > > > > John David Sorkin M.D., Ph.D. > Professor of Medicine, University of Maryland School of Medicine; > > Associate Director for Biostatistics and Informatics, Baltimore VA Medical > Center Geriatrics Research, Education, and Clinical Center; > > PI Biostatistics and Informatics Core, University of Maryland School of > Medicine Claude D. Pepper Older Americans Independence Center; > > Senior Statistician University of Maryland Center for Vascular Research; > > Division of Gerontology and Paliative Care, > 10 North Greene Street > GRECC (BT/18/GR) > Baltimore, MD 21201-1524 > Cell phone 443-418-5382 > > > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Apparently Analagous Threads
- [PATCH] nv50/ir: use unordered_set instead of list to keep our instructions in uses
- Multiple selection, renaming and saving the results
- levelplot question
- Chopping a two column data frame by rows into a three dimensional array.
- help with rle function on paired data