Re: [R] Question about error of "non-numeric argument to binary operator"

From: Yulei Gong <techsub.gong_at_gmail.com>
Date: Wed 11 Oct 2006 - 18:25:04 GMT

Thanks, Marc,
I tried it and it didn't really work.
> x.num<-as.numeric(x)
> is.numeric(x.num)
[1] TRUE
> x.num<-readClipboard()
> is.numeric(x.num)
[1] FALSE
> is.character(x.num)

[1] TRUE I use readClipboard to take in data, and it seems after the data is taken in, x.num changed to character.

I just start using R, not familiar with the data import/export functions...besides of that, I have a question about read.table, can this function read in spreadsheet data? if so, is the excel file supposed to put in the same directory with the R-2.4.0 folder?? Which is what I did, but I got the following error
> read.table(bra5y.xls,header = TRUE, row.names = 2)
Error in read.table(bra5y.xls, header = TRUE, row.names = 2) :

        object "bra5y.xls" not found

Pls help.

Thanks!

On 10/10/06, Marc Schwartz <MSchwartz@mn.rr.com> wrote:
>
> On Tue, 2006-10-10 at 22:35 -0400, Yulei Gong wrote:
> > Hi,
> > I have the following data and there is no binary operator contained,
> > however, I still receive the error message when running unitrootTest
> > function, could someone give me a guidance on it??
> >
> > >readClipboard()
> > [1] "245" "246" "261.5" "275.5" "307" "284.5" "289" "
> 313.5"
> > "323.75" "334" " 312.5" "325" "305.5" "322.5" "317" "310.5"
> > [17] "302" "301" "305" "287" "277.5" "271" " 271.5" "
> 278.5"
> > "279" "271" "263" "262" "262" "271" "262" "257"
> > [33] "251.5" "258" " 252.5" "254.5" "253" "251.5" "255"
> > "253" "253" "243" "238.5" "234" "229.5" "230.5" " 237.5
> " "
> > 235.5"
> > [49] "238" "225" "227.5" "233" "236.5" "236.5" "231.5"
> > "225" "221.5" "221.5 " "221.5" "221.5" "221.5" "221.25" "221"
> > "206"
> > [65] "207.5" "196" "192.5" "193.5" "186" " 197.5" "193.5"
> > "201" "195" "183" "185.5" "181.5
> " "179" "177" "173" "
> > 169.5"
> > [81] "173" "178" "169" "173" "167" " 158.5" "169.5"
> > "164" "145" "127.5" "132" "131" "131" "120" "120.5
> " "
> > 120.25"
> > [97] "120" " 112.5" "114.5" "106" "113" "111" "113" "
> 118.5"
> > "131" "131" "146.5" "133.5" "128" "132" " 130.5" "122"
> > [113] "122.5" "123.5" "126" "140" "132" "140" "143"
> > "148" "168" "162.5 " "152.5" "148" "144" "144" "150.5"
> > "151"
> > [129] "156" "156" "156" "152" "156" " 153.5" "137"
> > "135" "140" "135" "138.5" "139" "130" "131" "125"
> > "125"
> > [145] "121.5 " "125.5" "128" "128" "129.5" "133" "129.5"
> > "140" "154.5" "167.5" "156" "179" " 178.5" "174" "188"
> > "214"
> > [161] "197.5" "181.5" "181.5" "197.5" "191.5" "179" "189.5"
> > "184.5" "183" "182" "
> > 182.5" "177" "191" "198" "191" "180.5"
> > [177] "182" "183.5" "183" "182" " 189.5" "195" "208"
> > "203" "194" "176.5" "173" "173" "174" "165.5
> " "163" "
> > 162.5"
> > [193] "159" "162.5" "171" "168.5" "164" "158" "147"
> > "149" "149.5" "144" "141" " 138.5" "138" "136" "138"
> > "140"
> > [209] "135" "132.5" "130.75" "129" "129.5" "126" "127" "
> 128.5"
> > "127.5" "124" "117" "119" "120.5" "122" "129" "133"
> > [225] "136" "137" "133" "133" "127" "123" "122"
> > "117" "122" "126" "126" "133" " 127.5" "129" "130"
> > "125"
> > [241] "122" "126.5" "136" "148" "147" "150.5" "143.5"
> > "138.5" "134" "135" "
> > 135.75" "136.5" "132" "129" "127.5" "118.5"
> > > x<-readClipboard()
> > > unitrootTest(x)
> > Error in r[i1] - r[-length(r):-(length(r) - lag + 1)] :
> > non-numeric argument to binary operator
> >
> > I also try to do simple code with it, and getting error message as
> > well, such as
> > >for(j in 1:length(x)){w<-x/1}
> > >Error in x/1 : non-numeric argument to binary operator
> >
> > Thanks for your help!
> >
> > Yulei
>
> Your 'x' is a character vector, not numeric. The tip is that the values
> are surrounded by double quotes. Thus, you are trying to use operators
> intended for numerics on characters.
>
> For example:
>
> > x <- c("122", "126.5", "136", "148", "147", "150.5", "143.5")
>
> > x
> [1] "122" "126.5" "136" "148" "147" "150.5" "143.5"
>
> > x / 1
> Error in x/1 : non-numeric argument to binary operator
>
> > is.numeric(x)
> [1] FALSE
>
> > is.character(x)
> [1] TRUE
>
>
> It's not clear from your post how you read in the data originally. You
> should review that process or alternatively, coerce 'x' to numeric:
>
> > x.num <- as.numeric(x)
>
> > x.num
> [1] 122.0 126.5 136.0 148.0 147.0 150.5 143.5
>
> > x.num / 1
> [1] 122.0 126.5 136.0 148.0 147.0 150.5 143.5
>
>
> HTH,
>
> Marc Schwartz
>
>
>

        [[alternative HTML version deleted]]



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 and provide commented, minimal, self-contained, reproducible code. Received on Thu Oct 12 04:36:31 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 11 Oct 2006 - 19:30:09 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.