Re: [R] Working with lists with numerical names

From: Sundar Dorai-Raj <sundar.dorai-raj_at_pdf.com>
Date: Fri 24 Feb 2006 - 10:23:32 EST

Christopher Swingley wrote:
> Greetings!
>
> I'm have a hard time working with some data I imported from a baseball
> database. Several of the database columns have numbers in them (2B,
> 3B), and when I try to use these vectors from the data frame, I get
> syntax errors, probably because it's interpreting the name as a number:
>
> > show(batting2005)
> playerID yearID stint teamID lgID G AB R H 2B 3B HR RBI SB CS BB
> 1 robleos01 2005 1 LAN NL 110 364 44 99 18 1 5 34 0 8 31
> 2 iguchta01 2005 1 CHA AL 135 511 74 142 25 6 15 71 15 5 47
> 3 molinya01 2005 1 SLN NL 114 385 36 97 15 1 8 49 2 3 23
> . . .
> > print(batting2005$HR)
> [1] 5 15 8 3 14 3 6 21 8 7 9 27 12 5 14 8 28 9 22 15 5
> 22 9 10 1
> . . .
> > print(batting2005$2B)
> Error: syntax error in "print(batting2005$2"
>
> > SLG<-(H + 2B + 3B * 2 + HR * 3) / AB;
> Error: syntax error in "SLG<-(H + 2B" # batting2005 is attached
>
> > SLG<-(H + "2B" + "3B" * 2 + HR * 3) / AB;
> Error in H + "2B" : non-numeric argument to binary operator
>
> Is there a way to "escape" the '2B' somehow or encapsulate it so that R
> knows I'm talking about that particular numeric vector?
>
> Thanks,
>
> Chris

Hi, Chris,

 > x <- data.frame(1:5, 6:10)
 > names(x) <- c("R", "2B")
 > x

   R 2B
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
 > x$"2B"
[1] 6 7 8 9 10
 > with(x, R + `2B`)
[1] 7 9 11 13 15

HTH, --sundar



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Feb 24 10:29:05 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:44 EST