[R] Fortune?

Achim Zeileis Achim.Zeileis at uibk.ac.at
Fri Jun 25 18:19:32 CEST 2010


Bert,

thanks for the pointer, added to the devel version of "fortunes" on 
R-Forge.

thx,
Z

On Fri, 25 Jun 2010, Bert Gunter wrote:

> "On average, any data manipulation that can be described in a sentence or
> two of English can be programmed in one line in R. If you find yourself
> writing a long 'for' loop to do something that sounds simple, take a step
> back and research if an existing combination of functions can easily handle
> your request."
>
> -- Erik Iverson
>
>
> I nominate this for a Fortune. (email thread in which it appeared below)
>
> -- Bert
>
>
> Bert Gunter
> Genentech Nonclinical Biostatistics
>
>
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Erik Iverson
> Sent: Thursday, June 24, 2010 4:14 PM
> To: john polo
> Cc: r-help at r-project.org
> Subject: Re: [R] write a loop for tallies
>
> On average, any data manipulation that can be described in a sentence or two
> of
> English can be programmed in one line in R. If you find yourself writing a
> long
> 'for' loop to do something that sounds simple, take a step back and research
> if
> an existing combination of functions can easily handle your request.
>
> john polo wrote:
>> Dear R users,
>>
>> I have a list of numbers such as
>>
>> > n
>> [1] 3000 4000 5000 3000 5000 6000 4000 5000 7000 5000 6000 7000
>>
>> and i'd like to set up a loop that will keep track of the number of
>> occurences of each of the values that occur in the list, e.g.
>>
>> 3000: 2
>> 4000: 2
>> 5000: 4
>>
>> I came up with the following:
>>
>> a<- for (i in 1:length(n)) {
>> r<-0
>> s<-0
>> t<-0
>> u<-0
>> v<-0
>> ifelse(n[i] == "3000", r <- r+1,
>> ifelse(n[i] == "4000", s <- r+1,
>> ifelse(n[i] == "5000", t <- r+1,
>> ifelse(n[i] == "6000", u <- r+1,
>> ifelse(n[i] == "7000", v <- r+1, NA)))))
>> r<-sum(r)
>> s<-sum(s)
>> t<-sum(t)
>> u<-sum(u)
>> v<-sum(v)
>> cat("r = ", r, "\n")
>> cat("s = ", s, "\n")
>> cat("t = ", t, "\n")
>> cat("u = ", u, "\n")
>> cat("v = ", v, "\n")
>> }
>>
>> However, this is the output:
>>
>> r =  1
>> s =  0
>> t =  0
>> u =  0
>> v =  0
>> r =  0
>> s =  1
>> t =  0
>> u =  0
>> v =  0
>> r =  0
>> s =  0
>> t =  1
>> u =  0
>> v =  0
>> r =  1
>> s =  0
>> t =  0
>> u =  0
>> v =  0
>> r =  0
>> s =  0
>> t =  1
>> u =  0
>> v =  0
>> r =  0
>> s =  0
>> t =  0
>> u =  1
>> v =  0
>> r =  0
>> s =  1
>> t =  0
>> u =  0
>> v =  0
>> r =  0
>> s =  0
>> t =  1
>> u =  0
>> v =  0
>> r =  0
>> s =  0
>> t =  0
>> u =  0
>> v =  1
>> r =  0
>> s =  0
>> t =  1
>> u =  0
>> v =  0
>> r =  0
>> s =  0
>> t =  0
>> u =  1
>> v =  0
>> r =  0
>> s =  0
>> t =  0
>> u =  0
>> v =  1
>>
>> How should i write this loop, please? I've tried variations with "if"
>> instead of "ifelse" and receive errors about "unexpected {" or
>> "unexpected )".
>>
>> regards,
>> john
>>
>> ______________________________________________
>> R-help at 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 at 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.
>
>



More information about the R-help mailing list