cut()
)paste()
et gsub()
)seq()
, rep()
et names()
)colnames()
, rownames()
, t()
, apply()
)summary()
, lapply()
, sapply()
, scope des variables)dim()
, ncol()
, nrow()
, head()
, View()
, cbind()
, rbind()
)anyNA()
, is.na()
, colSums()
)select()
, filter()
, opérateur %>%
)ggplot()
)library(tidyverse)
library(ggpubr)
Avantage : permettra la programmation lettrée et la génération de rapports facilement !
# Les booléens
(bool = c(TRUE, TRUE, FALSE))
# Les numériques
(num = as.numeric(bool))
# Les characters
(char = as.character(num))
# Les facteurs
(fact = as.factor(char))
# Les conversions en sautant des étapes ne se passent pas bien
as.numeric(fact)
as.numeric(as.character(fact))
# Création d'un vecteur
(y = c(rep("grand", 8), rep("petit", 6)))
#Conversion en facteur
(y = as.factor(y))
#Réordonner les niveaux
(y = factor(y, levels = c("petit", "grand")))
#Ajouter une notion d'ordre
(y = factor(y, levels = c("petit", "grand"), ordered = TRUE))
cut()
)(Age = round(rnorm(n = 20, mean = 40, sd = 10), digits = 0))
(Age_quali = cut(x = Age, breaks = quantile(Age), labels = c("1Q", "2Q", "3Q", "4Q"), include.lowest = TRUE, ordered_result = TRUE))
table(Age_quali)
paste()
et gsub()
)a = 'apple'
b = 'orange'
(paste(a, b))
(paste(a, b, sep = "-"))
gsub(pattern = "p", replacement = "P", x = a)
seq()
, rep()
et names()
)# Créer un vecteur
(x = c(1, 4, 6))
(x = seq(from = 0, to = 10, by = 0.5))
(x = seq(from = 0, to = 3, length.out = 10))
(x = rep(0, 5))
(x = rep(c(0, 1), c(5, 4)))
(x = 1:12)
# Sélectionner les élements d'un vecteur par position
x[4]
# Sélectionner les élements d'un vecteur par valeur
x[x == 3]
x[x > 0]
x[x %in% c(1:3)]
# Sélectionner les élements d'un vecteur par nom
names(x) = month.name
x
x['February']
colnames()
, rownames()
, t()
, apply()
)(m = matrix(1:9, nrow = 3, ncol = 3))
class(m)
colnames(m) = paste("ind", 1:3, sep = "")
m
rownames(m) = paste("var", 1:3, sep = "")
m
t(m) #transposée de la matrice
# Une matrice contient uniquement des élements du même type
m[2,2] = 'a'
m
m[2,2] = 5
m
# conversion de type
as.numeric(m)
apply(m, 1, as.numeric)
summary()
, lapply()
, sapply()
, scope des variables)(l = list(x = 1:10, y = 'apple'))
class(l)
l$x
l[[2]]
l['y']
summary(l)
# Appliquer une fonction à tous les éléments d'une liste
# Sortie : une autre liste
lapply(X = l, FUN = length)
# Comme lapply mais la sortie est un vecteur ou une matrice
sapply(X = l, FUN = length)
# Notion de scoping : la portée des variables
x
y
dim()
, ncol()
, nrow()
, head()
, View()
, cbind()
, rbind()
)(df = data.frame(x = 1:12, y = month.name))
class(df)
dim(df)
ncol(df)
nrow(df)
head(df, n = 4)
View(df)
cbind(df, nb = runif(12))
rbind(df, c(13, "New"))
df$y
df$y = as.character(df$y)
rbind(df, c(13, "New"))
(df = data.frame(x = 1:12, y = month.name, stringsAsFactors = FALSE))
df$y
rbind(df, c(13, "New"))
library(tidyverse)
# Dans la console
swiss
as_tibble(swiss) #Affichage plus concis
# Plus de rownames !
as_tibble(swiss, rownames = "Provinces")
anyNA()
, is.na()
, colSums()
)metadata = readRDS(file = "TP-metagenomique/metadata.RDS")
View(metadata)
# Savoit quelles sont les colonnes concernées par les données manquantes
apply(X = metadata, MARGIN = 2, anyNA)
table(metadata$status)
apply(X = metadata, MARGIN = 2, is.na)
colSums(apply(X = metadata, MARGIN = 2, is.na))
metadata %>%
filter(is.na(Crea) | is.na(Alb) | is.na(TB))
metadata2 = metadata %>%
filter(!is.na(Crea) & !is.na(Alb) & !is.na(TB))
colSums(apply(X = metadata2, MARGIN = 2, is.na))
metadata %>%
filter(is.na(Enterotype))
select()
, filter()
, opérateur %>%
)# selectionner des colonnes
select(metadata, status, BMI, INR)
metadata %>%
select(status, BMI, INR)
# sélectionner des colonnes conditionnellement
select_if(metadata, is.factor)
# filtrer les lignes
filter(metadata, status == "liver")
metadata %>%
filter(status == "liver")
# Combiner les opérations
metadata %>%
filter(status == "liver") %>%
select(Age, BMI) %>%
plot()
# Trier une ou plusieurs colonnes avec arrange
arrange(metadata, Age)
arrange(metadata, -Age)
# Récupérer les noms de lignes
metadata %>%
rownames_to_column("Ind") %>%
arrange(Age) %>%
filter(Crea > 100)
ggplot()
)ggplot(data = metadata, mapping = aes(x = Age, y = BMI))
ggplot(data = metadata, mapping = aes(x = Age, y = BMI)) +
geom_point()
ggplot(data = metadata, mapping = aes(x = Gender, y = BMI)) +
geom_point()
ggplot(data = metadata, mapping = aes(x = Gender, y = BMI, fill = Gender)) +
geom_boxplot() +
stat_compare_means()
ggplot(data = metadata, mapping = aes(x = Gender, y = BMI, fill = Gender)) +
geom_boxplot() +
stat_compare_means() +
facet_wrap(~status)