From Kurt.Hornik@ci.tuwien.ac.at  Mon Apr 28 06:07:05 1997
From: Kurt.Hornik@ci.tuwien.ac.at (Kurt Hornik)
Date: Mon, 28 Apr 1997 07:07:05 +0200
Subject: R-alpha: list assignment
In-Reply-To: <x2rafznyuq.fsf@bush.kubism.ku.dk>
References: <199704250112.NAA00344@stat3.stat.auckland.ac.nz>
 <x2rafznyuq.fsf@bush.kubism.ku.dk>
Message-ID: <199704280507.HAA02510@aragorn.ci.tuwien.ac.at>

>>>>> Peter Dalgaard BSA writes:

> Robert Gentleman <rgentlem@stat.auckland.ac.nz> writes:
>> 
>> 
>> Peter,
>> They don't work on purpose. Basically this is the same problem as indexing
>> beyond the end of an array. In almost all cases it is an error.
>> To add a variable with a specific name to a data frame how about
>> 
>> x (the dataframe)
>> var1 the variable
>> name1 the name
>> 
>> x<-cbind(x,var1)
>> names(x)[ncol(x)]<-name1

> Hm. Not sure about that argument. After all we don't protect against
> typing

> x$mumble<-17
> instead of 
> x$grumble<-17

> Once you're into indexing lists through character variables, shouldn't
> you be assumed to know what you're doing? Beginners can do much more
> mischief with e.g. dfr$new<-0 which will turn dfr into a list.

> However, apropos your construct, watch this:

>> x<-list()
>> x[[1]]<-23
>> names(x)[1]<-"a"
>> x
> $"a"
> [1] 23

>> unlist(x)
> \"a\" 
>    23 
>> names(x)[1]     
> [1] "\"a\""
>> names(x)   
> [1] "\"a\""
>> names(x)[1]<-"a"
>> names(x)
> [1] "a"
>> x
> $a
> [1] 23

>> unlist(x)
>  a 
> 23

Which is the same (?) as the

R> l <- list("11" = 1:5)
R> l
$11
[1] 1 2 3 4 5

R> unlist(l)
111 112 113 114 115 
  1   2   3   4   5 

I ran into this weekend ...

-k
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


R-alpha: list assignment
Kurt Hornik