Conservez les étiquettes de votre fichier d'origine comme ceci:
df = read.table('data.txt', header = T)
Si vous avez des colonnes nommées x et y, vous pouvez les adresser comme ceci:
df$x
df$y
Si vous souhaitez réellement supprimer la première ligne d'un data.frame, vous pouvez utiliser des indices négatifs comme celui-ci:
df = df[-1,]
Si vous souhaitez supprimer une colonne d'un data.frame, vous pouvez lui attribuer NULL:
df$x = NULL
Voici quelques exemples simples de création et de manipulation d'un data.frame dans R:
> x = rnorm(10)
> y = runif(10)
> df = data.frame( x, y )
> write.table( df, 'test.txt', row.names = F, quote = F )
> read.table( df, 'test.txt', header = T )
> df$x
[1] -0.95343778 -0.63098637 -1.30646529 1.38906143 0.51703237 -0.02246754
[7] 0.20583548 0.21530721 0.69087460 2.30610998
> df$y
[1] 0.66658148 0.15355851 0.60098886 0.14284576 0.20408723 0.58271061
[7] 0.05170994 0.83627336 0.76713317 0.95052671
> df$x = x
> df
y x
1 0.66658148 -0.95343778
2 0.15355851 -0.63098637
3 0.60098886 -1.30646529
4 0.14284576 1.38906143
5 0.20408723 0.51703237
6 0.58271061 -0.02246754
7 0.05170994 0.20583548
8 0.83627336 0.21530721
9 0.76713317 0.69087460
10 0.95052671 2.30610998
> df[-1,]
y x
2 0.15355851 -0.63098637
3 0.60098886 -1.30646529
4 0.14284576 1.38906143
5 0.20408723 0.51703237
6 0.58271061 -0.02246754
7 0.05170994 0.20583548
8 0.83627336 0.21530721
9 0.76713317 0.69087460
10 0.95052671 2.30610998
> df$x = NULL
> df
y
1 0.66658148
2 0.15355851
3 0.60098886
4 0.14284576
5 0.20408723
6 0.58271061
7 0.05170994
8 0.83627336
9 0.76713317
10 0.95052671
header=T
l'T
est synonyme deTRUE
, donc ce paramètre indique R à en- tête de charge. Voir?read.table
pour plus de détails.drop = FALSE
en cas d'indexation négativeVous pouvez utiliser l'indexation négative pour supprimer des lignes, par exemple:
dat <- dat[-1, ]
Voici un exemple:
> dat <- data.frame(A = 1:3, B = 1:3) > dat[-1, ] A B 2 2 2 3 3 3 > dat2 <- dat[-1, ] > dat2 A B 2 2 2 3 3 3
Cela dit, vous pouvez avoir plus de problèmes que de simplement supprimer les étiquettes qui se sont retrouvées sur la ligne 1. Il est plus que probable que R ait interprété les données comme du texte et ensuite converties en facteurs. Vérifiez ce que dit
str(foo)
, où sefoo
trouve votre objet de données, sur les types de données.Il semble que vous ayez juste besoin
header = TRUE
dans votre appel de lire les données (en supposant que vous les lisiez viaread.table()
ou l'un de ses wrappers.)la source
Personne ne veut probablement vraiment supprimer la première ligne. Donc, si vous cherchez quelque chose de significatif, c'est la sélection conditionnelle
#remove rows that have long length and "0" value for vector E >> setNew<-set[!(set$length=="long" & set$E==0),]
la source
Bien que je sois d'accord avec la réponse la plus votée, voici une autre façon de conserver toutes les lignes sauf la première:
dat <- tail(dat, -1)
Cela peut également être accompli en utilisant le
dplyr
package de Hadley Wickham .dat <- dat %>% slice(-1)
la source
Je ne suis pas un expert, mais cela peut aussi fonctionner,
dat <- dat[2:nrow(dat), ]
la source
nrow(dat) == 1
: Ensuite, la date d'origine est conservée.dat <- dat[-1, ]
a fonctionné mais il a tué mon dataframe, le changeant en un autre type. A dû utiliser à la place,dat <- data.frame(dat[-1, ])
mais c'est peut-être un cas particulier car cette base de données ne comportait initialement qu'une seule colonne.la source