highlight.R

## 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()

AltStyle によって変換されたページ (->オリジナル) /