Hi,
I run into the following problem:
> data(iris)
> as.array(iris[,-5])
Error in "dimnames<-.data.frame"(`*tmp*`, value =
list(c("Sepal.Length", :
invalid dimnames given for data frame> as.array(as.matrix(iris[,-5]))
When trying to convert numeric data frame to an array. Conversion to matrix
works just fine, but array crashes. Since documentation for
"as.array" says
its argument has to be "an R object" than it should work for data
frames as
well.
Closer examination shows that "as.array" code with [150 x 4] data
frame as
input, does the following:
# line of code effect
1 if (is.array(x)) return(x) is.array is false
2 n <- names(x) "names" return a
vector of 4 column names
3 dim(x) <- length(x) dim(x) before is [150 x 4];
length(x) is 4; dim(x) after is still [150 x 4]
4 if (length(n)) dimnames(x)<-list(n) list(n) is a list containing 1
vector with 4 strings; attempt to set it as dimnames to [150x4] object
fails
5 return(x)
If this is a bug and not poorly documented feature, than changing line 2 to
"n <- dimnames(x)" seem to work for this example.
Jarek
=====================================\====
Jarek Tuszynski, PhD. o / \
Science Applications International Corporation <\__,|
(703) 676-4192 "> \
Jaroslaw.W.Tuszynski@saic.com ` \
[[alternative HTML version deleted]]