accéder à une variable dans data frame

Questions sur les objets de R et la manipulation des données

Modérateur : Groupe des modérateurs

Samir Messad
Messages : 76
Enregistré le : 10 Jan 2005, 20:56

accéder à une variable dans data frame

Messagepar Samir Messad » 17 Mai 2006, 15:10

Salut,
j'ai un petit problème pour acceder à la variable d'un data frame dont le nom est un chiffre ou un nombre.

>L3 <- LETTERS[1:3]
>d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3, 10, repl=TRUE))

x y fac
1 1 1 A
2 1 2 C
3 1 3 B
4 1 4 A
5 1 5 C
6 1 6 C
7 1 7 C
8 1 8 C
9 1 9 A
10 1 10 A

Je change le noms des colonnes :

>colnames(d) <- c("1","2","3")

>d
1 2 3
1 1 1 A
2 1 2 C
3 1 3 B
4 1 4 A
5 1 5 C
6 1 6 C
7 1 7 C
8 1 8 C
9 1 9 A
10 1 10 A

d[,1] et d[,"1"] fonctionne sans soucis

Par contre, le 3ème mode d'accès à la variable est impossible
> d$1
Error: syntax error in "d$1"

La fonction make.names confirme que les noms avec chiffres ne sont pas valides :
>make.names(colnames(d))
[1] "X1" "X2" "X3"

Des avis pour accéder explicitement à des variables d'un data frame nommés avec des chiffres ?

Samir Messad

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Messagepar François Bonnot » 17 Mai 2006, 15:37

Quand un nom de colonne n'est pas un nom d'objet valide il faut le mettre entre guillemets. Donc ici : d$"1"

C'est vrai aussi par exemple quand le nom comporte un espace.


Retourner vers « Archives : Manipulation de données avec R »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité