On Mon, Jun 04, 2012 at 11:08:24AM +0200, David Zastrau wrote: > Hello R-users, > > I'd like to load data from a CSV-file to a 3-dimensional array. However > the default seems to be 2-dimensional. It would also be ok to load the > data and then convert it to a 3-dimensional structure. > > I've been trying: > > dat = read.csv(filename) > myArr = as.array(dat, dim = c(12,100,3)) > > However, I get an error message: > > Error in `dimnames<-.data.frame`(`*tmp*`, value = list(n)) : > invalid 'dimnames' given for data frame
Hello: The structure obtained form read.csv() is a data frame, which is a list of columns of equal length. You can convert it to a matrix using as.matrix() and then perform further transformation. The command array(as.matrix(dat), dim = c(12,100,3)) makes sense if either the matrix is 1200 times 3 or if it is 12 times 300. In the former case, the row number 1:1200 will be translated to the values of the first two indices. In the latter case, the column number 1:300 will be translated to the last two indices. Hope this helps. Petr Savicky. ______________________________________________ R-help@r-project.org mailing list 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.