Henrik Bengtsson wrote:
Hi.
On Mon, Jan 12, 2009 at 11:58 PM, Prof Brian Ripley
<rip...@stats.ox.ac.uk> wrote:
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]]'.
Thanks for this explanation. One could then argue that [1:10,] is
somewhat better than [,1:10], but that is just polish.
Perhaps it could be:
[1:10(,)]
That is weird enough that it should not lead people to
believe that it is a matrix. But might prompt them a bit
in that direction.
Patrick Burns
patr...@burns-stat.com
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of "The R Inferno" and "A Guide for the Unwilling S User")
/Henrik
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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel