## R Script Sample File ## Source: http://www.rexamples.com ## Basics a <- 42.24 a <- 42i a <- 42L a <- 42 A <- a * 2 # R is case sensitive print(a) cat(A, "\n") # "84" is concatenated with "\n" if(A>a) # true, 84 > 42 { cat(A, ">", a, "\n") } ## Functions Square <- function(x) { return(x^2) } print(Square(4)) print(Square(x=4)) # same thing DoSomething(color="red",number=55) ## Countdown countdown <- function(from) { print(from) while(from!=0) { Sys.sleep(1) from <- from - 1 print(from) } } countdown(5) ## Reading user input readinteger <- function() { n <- readline(prompt="Enter an integer: ") n <- as.integer(n) if (is.na(n)){ n <- readinteger() } return(n) } print(readinteger()) readinteger <- function() { n <- readline(prompt="Enter an integer: ") if(!grepl("^[0-9]+$",n)) { return(readinteger()) } return(as.integer(n)) } print(readinteger()) ## Guess a random number game readinteger <- function() { n <- readline(prompt="Enter an integer: ") if(!grepl("^[0-9]+$",n)) { return(readinteger()) } return(as.integer(n)) } # real program start here num <- round(runif(1) * 100, digits = 0) guess <- -1 cat("Guess a number between 0 and 100.\n") while(guess != num) { guess <- readinteger() if (guess == num) { cat("Congratulations,", num, "is right.\n") } else if (guess < num) { cat("It's bigger!\n") } else if(guess > num) { cat("It's smaller!\n") } } ## Lists sum(0:9) append(LETTERS[1:13],letters[14:26]) c(1,6,4,9)*2 something <- c(1,4,letters[2]) # indices start at one, you get (1,4,"b") length(something) ## margrittr's pipe diamonds %>% filter(price > 1000) %>% group_by(cut) %>% tally() %>% rename(tally = n) %>% arrange(-tally) %>% mutate(pct = tally / sum(tally)) -> df ## R native pipes (R > 4.1) Sys.setenv("_R_USE_PIPEBIND_"= TRUE) mtcars |> x => lm(mpg ~ cyl, data = x) ## ggplot2 plot = ggplot(diamonds, aes(x = price, y = carat)) + geom_point(alpha = 0.3, colour = 'steelblue') + labs( title = "ggplot diamonds", x = "Price, $", y = "Carat" ) + facet_wrap(~ cut) + theme_minimal() plot + coord_flip()