What you have is a one-dimensional array: they crop up in R most often
from table() in my experience.
f <- table(rpois(100, 4))
str(f)
'table' int [, 1:10] 2 6 18 21 13 16 13 4 3 4
- attr(*, "dimnames")=List of 1
..$ : chr [1:10] "0" "1" "2" "3" ...
and yes, f is an atmoic vector and yes, str()'s notation is confusing
here but if it did [1:10] you would not know it was an array. I
recall discussing this with Martin Maechler (str's author) last
century, and I've just checked that R 2.0.0 did the same.
The place in which one-dimensional arrays differ from normal vectors
is how names are handled: notice that my example has dimnames not
names, and ?names says
For a one-dimensional array the 'names' attribute really is
'dimnames[[1]]'.
I think these days we have enough internal glue in place that an end
user would not notice the difference (but those working at C level
with R objects may need to know).
On Mon, 12 Jan 2009, Henrik Bengtsson wrote:
Ran into the follow intermediate case in an external package (w/
recent R v2.8.1 patched and R v2.9.0 devel):
x <- 1:2
dim(x) <- 2
dim(x)
[1] 2
x
[1] 1 2
str(x)
int [, 1:2] 1 2
nrow(x)
[1] 2
ncol(x)
[1] NA
is.vector(x)
[1] FALSE
is.matrix(x)
[1] FALSE
is.array(x)
[1] TRUE
x[1]
[1] 1
x[,1]
Error in x[, 1] : incorrect number of dimensions
x[1,]
Error in x[1, ] : incorrect number of dimensions
Is str() treating single-dimension arrays incorrectly?
What does it mean to have a single dimension this way? Should it
equal a vector? I am aware of "is.vector returns FALSE if x has any
attributes except names".
/Henrik
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, rip...@stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel