Language R
(Vectorized and makes correct lyrics)
Date: | 10/05/05 |
Author: | Giovanni Millo |
URL: | n/a |
Comments: | 1 |
Info: | http://www.r-project.org/ |
Score: | (3.01 in 184 votes) |
# 99 bottles of beer, alternate R version. # Demonstrates inherent vectorization of R. # Creates the correct lyrics, not as in the # original BASIC example. # Works for any n>2, default n=99. # Should work in S-Plus as well. # # Giovanni Millo, Trieste (Italy) 4/10/2005 ########################### song<-function(n=99) { a<-" bottle" b<-" of beer on the wall, " c<-" of beer. " d<-"Take one down and pass it around: " # ## set "beer counter" vector counter<-c(as.character(n:1),"No more") # ## set plural s<-ifelse(counter=="1","","s") # ## build up the verses vector firsthalf<-paste(counter,a,s,b,counter,a,s,c,sep="") sechalf1.99<-paste(d,counter[-1],a,s[-1],b,sep="") sechalf100<-paste("Go to the store and buy some more: ", counter[1],a,"s",b,sep="") ## ## song is the vector of n+1 complete verses song<-paste(firsthalf,c(sechalf1.99,sechalf100),sep="") } print(song)
Download Source | Write Comment
Alternative Versions
Version | Author | Date | Comments | Rate |
---|---|---|---|---|
Recursive Approach | Roland | 01/04/06 | 0 | |
Dataframe approach | David Dailey | 05/03/08 | 0 |
Download Source | Write Comment
Add Comment
Please provide a value for the fields Name,
Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.
Please don't post large portions of code here! Use the form to submit new examples or updates instead!
Comments
Giovanni said on 02/11/08 18:55:46
This is most true (and embarrassing!) :^)
I noticed immediately after submitting...