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: |
# 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
I noticed immediately after submitting...