Home
Aide mémoire R
Quelques librairies R
Liens & contact
Recherche :
Aide-memoire-R > Le-langage > Dataframes-avances

Dataframes avancés.

Sélection de lignes ou colonnes d'un dataframe :

Sélection de lignes avec des expressions booléennes :

Elimination des doublons dans un dataframe : grâce à unique :

fr <- data.frame(A = factor(c("a", "b", "a")), B = c(3, 4, 3))
unique(fr)
  A B
1 a 3
2 b 4

Calcul d'agrégats par groupe avec by :

Calcul d'agrégats par groupe avec aggregate (beaucoup plus commode) :

Passage d'un dataframe avec 2 facteurs à une matrice, avec aggrégation des valeurs au passage (souvent avec moyenne) :

fr <- data.frame(typ = factor(c("a", "b", "b", "a", "b")),
                 typ2 = factor(c("A", "B", "B", "B", "B")),
                 val = c(3, 5, 2, 3, 1))
tapply(fr$val, list(typ = fr$typ, typ2 = fr$typ2), mean)
donne
   typ2
typ  A        B
  a  3 3.000000
  b NA 2.666667
le résultat est une matrice.

Jointure de frames (au sens relationnel) :
Si fr1 <-data.frame(val1 = c("a", "b"), val2 = c(2, 4)); fr2 <- data.frame(val2 = c(2, 3, 4), val3 = c("b", "c", "a")) :

Stacking/unstacking de frames :

Transformation d'une matrice en data-frame à colonnes avec les noms des lignes et des colonnes de la matrice et les valeurs :

mat <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 3,
              dimnames = list(c("A", "B", "C"), c("a", "b")))
print(mat)
fr <- data.frame(varLine = rep(rownames(mat), times = ncol(mat)),
                 varColumn = rep(colnames(mat), each = nrow(mat)),
                 values = as.vector(mat))
print(fr)
donne :
  a b
A 1 4
B 2 5
C 3 6
  varLine varColumn values
1       A         a      1
2       B         a      2
3       C         a      3
4       A         b      4
5       B         b      5
6       C         b      6

Split de valeurs selon un facteur :
Si fr est le dataframe :

  typ val
1   a   3
2   b   5
3   b   2
4   a   3
5   b   1
split(fr$val, fr$typ) : partage les valeurs de fr$val selon les valeurs de fr$typ pour donner une liste dont les éléments sont les vecteurs de valeurs de fr$val par valeur de fr$typ :
$a
[1] 3 3
$b
[1] 5 2 1


Dernière date de modification : 2010-01-02