Alea

{ R et statistique en sciences sociales }

Twitter   Flux Atom

recherche

Aller au contenu | Aller au menu | Aller à la recherche

Dichotomiser des variables sous R

Présentation de plusieurs méthodes permettant de dichotomiser une variable, c'est-à-dire de transformer chaque modalité de réponse en une nouvelle variable indicatrice de la présence de cette modalité.

Lire la suite...

Manipulation de chaînes de caractères avec stringr

L'extension stringr, développée par Hadley Wickham, propose une interface unifiée et simplifiée à différentes fonctions de manipulations des chaînes de caractères.

Lire la suite...

Manipulation des données avec reshape

http://alea.fr.eu.org/public/_____________reshape1.png
reshape est une extension développée par Hadley Wickham. Elle permet de passer facilement d'un format de données «long» (une ligne par individu et par variable) à un format «large» (une seule ligne par individu). Elle est notamment utile pour mettre en forme les données avant utilisation des fonctions graphiques de ggplot2.

Lire la suite...

Utilisation de RgoogleMaps

http://alea.fr.eu.org/public/_____________tile1.png
RgoogleMaps est une extension permettant de récupérer des fonds de carte (plans ou images satellites) depuis Google Maps et de les utiliser comme arrière-plan pour des graphiques.

Lire la suite...

Cartographie avec ggplot2

http://alea.fr.eu.org/public/_____________ggplot2_maps_1.png
ggplot2 est une bibliothèque extrêmement puissante et de plus en plus populaire proposant un cadre unifié et une vraie logique pour la génération de graphiques sous R. L'idée ici est d'utiliser cette bibliothèque pour représenter des données spatiales au-dessus d'une carte obtenue, par exemple, par l'importation d'un fichier shapefile, ou autres données utilisée's par la bibliothèque sp.

Lire la suite...

Obtenir un dump réutilisable d'un objet R avec dput

La commande dput permet d'obtenir une représentation réutilisabale et éditable, sous forme de code, d'un objet actif.

Exemples :

R> v <- c(1:10)
R> v
 [1]  1  2  3  4  5  6  7  8  9 10
R> dput(v)
1:10
R> u <- c("rouge","blanc")
R> u
[1] "rouge" "blanc"
R> dput(u)
c("rouge", "blanc") 

Ceci peut être bien utile pour envoyer une question sur une liste de discussion ou pour modifier les niveaux d'un facteur, par exemple.

Voir aussi ce commentaire sur Stack Overfow.

Utilisation de PostGIS

Notes «brutes» sur la mise en place et l'utilisation de PostGIS. Les indications sont basées sur une installation standard de PostgreSQL et PostGIS sous Debian.

Lire la suite...

Indice de Paasche

Description, mode de calcul et fonction sous R permettant de calculer l'indice de Paasche.

Lire la suite...

Analyse des correspondances avec R

http://alea.fr.eu.org/public/_____________fmeig.png
Introduction à l'utilisation des ACM (Analyse des correspondances multiples) sous R. Seul l'usage de l'extension FactoMineR est traité pour le moment.

Lire la suite...

Créer un compteur d'identifiants

Si on a le data frame suivant :

id     type
10002  "7"
10061  "1"
10061  "1"
10061  "4"
10065  "7"
10114  "1"
10114  "1"
10114  "4"
10136  "7"
10136  "2"
10136  "2"

Et qu'on veut obtenir ceci :

id     type   counter
10002  "7"      1 
10061  "1"      1
10061  "1"      2
10061  "4"      3
10065  "7"      1
10114  "1"      1 
10114  "1"      2
10114  "4"      3
10136  "7"      1
10136  "2"      2
10136  "2"      3

Avant toutes chose il faut ordonner le data frame selon la variable id :

df <- df[order(df$id),]

On peut utiliser la méthode suivante, mais qui est très lente :

df$count <- unlist(tapply(df$id, df$id, order))

On peut également utiliser la fonction table, c'est plus rapide :

df$count <- unlist(lapply(table(df$id), function(x){1:x}))

Mais le plus rapide est de passer par la fonction lre :

df$count <- unlist(lapply(rle(as.vector(df$id))$lengths,function(x){1:x})))

Comparaison des temps d'exécution des trois méthodes :

R> system.time(unlist(tapply(tmp$ident, tmp$ident, order)))
utilisateur     système      écoulé 
      4.196       0.000       4.840 

R> system.time(unlist(lapply(table(tmp$ident),function(x){1:x})))
utilisateur     système      écoulé 
      0.028       0.000       0.033

R> system.time(unlist(lapply(rle(as.vector(tmp$ident))$lengths,function(x){1:x})))
utilisateur     système      écoulé 
      0.012       0.000       0.018 

Fonctions rapides fournies par spacedman sur #R.

- page 1 de 2