[R] ave(x, y, FUN=length) produces character output when x is character
Mike Miller
mbmiller+l at gmail.com
Thu Dec 25 23:45:16 CET 2014
On Thu, 25 Dec 2014, Mike Miller wrote:
> I was going to ask a question about it how to test that an object is a
> vector, but then I found this:
>
> "is.vector() does not test if an object is a vector. Instead it returns
> TRUE only if the object is a vector with no attributes apart from names.
> Use is.atomic(x) || is.list(x) to test if an object is actually a
> vector."
>
> From here:
>
> http://adv-r.had.co.nz/Data-structures.html#vectors
But here...
https://stat.ethz.ch/R-manual/R-devel/library/base/html/vector.html
...I read, "Note that factors are *not* vectors" (emphasis theirs), yet...
> d <- gl(2,2)
> is.factor(d)
[1] TRUE
> is.atomic(d) || is.list(d)
[1] TRUE
> is.list(d)
[1] FALSE
> is.atomic(d)
[1] TRUE
> is.vector(d)
[1] FALSE
So the factor is not a vector according to R documentation, but it is a
vector according to the Wickham test, and it is not a vector according to
is.vector(). Admittedly, the latter seems not to mean much to the R
experts. Maybe a factor is just a vector with additional attributes.
Mike
More information about the R-help
mailing list