Not sure what "a" really is. It's not a vector or a list according to
the R interpreter.
> a <- structure(1:3,x=3)
> mode(a)
[1] "numeric"
> is.vector(a)
[1] FALSE
> is.list(a)
[1] FALSE
Experimentation shows that simple indexing provides the functionality
you request while append does not.
> a[4] <- 10
> a
[1] 1 2 3 10
attr(,"x")
[1] 3
> a <-append(a, 20)
> a
[1] 1 2 3 10 20
# appears to have now coerced it to a vector
> a
[1] 1 2 3 10 20
> is.vector(a)
[1] TRUE
--
David Winsemius
On Feb 9, 2009, at 7:09 AM, Alon Wasserman wrote:
Hi,
I would like to know how to assign values to a whole vector while
keeping
its attributes. For example, say I have
a <- structure(1:3,x=3)
and I want to change the values to 2:4. If I do, a <- 2:4, the
attribute x
will be lost. I have a workaround for this case, which is to use
subset
assignment
a[1:3] <- 2:4.
However, what if I want to also change the length of a? Then this
workaround
doesn't work and also assigning into length(a) drops the attributes.
More
severe workarounds (such as keeping the attributes and then
reassigning
them) work, but if there's a simple solution, I'd be happy to use it.
Thanks,
Alon
[[alternative HTML version deleted]]
______________________________________________
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.
______________________________________________
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.