x <- 10
x = 10 # also works x <- 3.14 x <- 5L name <- "R" flag <- TRUE v <- c(1, 2, 3, 4, 5) lst <- list(name="John", age=30) class(x)
typeof(x) v <- c(1, 2, 3, 4, 5) 1:10
seq(1, 10, by=2) rep(1, times=5)
rep(1:3, each=2) v[1] # first element (1-indexed)
v[c(1,3)] # 1st and 3rd v[2:4] # elements 2 to 4 v[-1] # all except first v * 2 # element-wise
sum(v)
mean(v)
max(v), min(v) df <- data.frame(
name = c("Alice", "Bob"),
age = c(25, 30)
) df <- data.frame(col1=v1, col2=v2) str(df)
head(df)
tail(df) nrow(df)
ncol(df)
dim(df) names(df)
colnames(df) df$name
df["name"]
df[, "name"] df[1, ] # first row df[1, 2] # row 1, col 2 df[, c("name", "age")] df[df$age > 25, ] subset(df, age > 25) df$new_col <- values df$col <- NULL merge(df1, df2, by="id") rbind(df1, df2) cbind(df1, df2) df[order(df$age), ] if (x > 0) {
print("positive")
} else if (x < 0) {
print("negative")
} else {
print("zero")
} ifelse(x > 0, "pos", "neg") for (i in 1:10) {
print(i)
} while (x < 10) {
x <- x + 1
} for (i in 1:10) {
if (i == 5) break
if (i == 3) next
print(i)
} add <- function(a, b) {
return(a + b)
} greet <- function(name = "World") {
paste("Hello,", name)
} square <- function(x) x^2 stats <- function(v) {
list(mean=mean(v), sd=sd(v))
} sapply(1:5, function(x) x^2) apply(matrix, 1, sum) # by row
apply(matrix, 2, sum) # by col lapply(list, function) # returns list sapply(list, function) # simplifies mapply(function, v1, v2) # parallel tapply(values, groups, mean) library(dplyr)
library(tidyverse) df %>% filter(x > 5) %>% select(a, b) df %>% filter(age > 25) df %>% select(name, age)
df %>% select(-id) # exclude df %>% mutate(age2 = age * 2) df %>% arrange(age)
df %>% arrange(desc(age)) df %>% group_by(category) df %>% summarize(mean_age = mean(age)) left_join(df1, df2, by = "id")
inner_join(df1, df2, by = "id") df %>% distinct(category) df %>% count(category) df %>% rename(new_name = old_name) df %>% slice(1:10) df %>% pull(column) plot(x, y) plot(x, y, type = "l") hist(x) barplot(table(x)) boxplot(y ~ group) ggplot(df, aes(x=col1, y=col2)) +
geom_point() ggplot(df, aes(x, y)) + geom_point() ggplot(df, aes(x, y)) + geom_line() ggplot(df, aes(x)) + geom_bar() ggplot(df, aes(x)) + geom_histogram() + facet_wrap(~category) + theme_minimal() + labs(title="Title", x="X", y="Y") df <- read.csv("file.csv")
df <- readr::read_csv("file.csv") write.csv(df, "file.csv", row.names=FALSE) library(readxl)
df <- read_excel("file.xlsx") library(writexl)
write_xlsx(df, "file.xlsx") saveRDS(obj, "file.rds") obj <- readRDS("file.rds") summary(df) mean(x)
median(x) sd(x)
var(x) quantile(x, 0.25) cor(x, y) t.test(x, y) chisq.test(table) model <- lm(y ~ x, data=df)
summary(model)