Mantenga las etiquetas de su archivo original de esta manera:
df = read.table('data.txt', header = T)
Si tiene columnas denominadas xey, puede abordarlas así:
df$x
df$y
Si realmente desea eliminar la primera fila de un data.frame, puede usar índices negativos como este:
df = df[-1,]
Si desea eliminar una columna de un data.frame, puede asignarle NULL:
df$x = NULL
Aquí hay algunos ejemplos simples de cómo crear y manipular un data.frame en 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=TlosTsoportesTRUE, por lo que este parámetro le dice a R que cargue el encabezado. Consulte?read.tablepara obtener más detalles.drop = FALSEindexación negativaPuede utilizar la indexación negativa para eliminar filas, por ejemplo:
dat <- dat[-1, ]Aquí hay un ejemplo:
> 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 3Dicho esto, es posible que tenga más problemas que simplemente quitar las etiquetas que terminaron en la fila 1. Es más probable que R haya interpretado los datos como texto y, por lo tanto, los haya convertido en factores. Revisar qué
str(foo), dóndefooestá su objeto de datos, dice sobre los tipos de datos.Parece que solo necesita
header = TRUEleer los datos en su llamada (suponiendo que los lea a través deread.table()uno de sus contenedores).fuente
Probablemente nadie quiera eliminar la fila uno. Entonces, si está buscando algo significativo, esa es la selección condicional
#remove rows that have long length and "0" value for vector E >> setNew<-set[!(set$length=="long" & set$E==0),]fuente
Si bien estoy de acuerdo con la respuesta más votada, aquí hay otra forma de mantener todas las filas excepto la primera:
dat <- tail(dat, -1)Esto también se puede lograr utilizando el
dplyrpaquete de Hadley Wickham .dat <- dat %>% slice(-1)fuente
No soy un experto, pero esto también puede funcionar,
dat <- dat[2:nrow(dat), ]fuente
nrow(dat) == 1: Entonces se conserva el dat original.dat <- dat[-1, ]funcionó pero mató mi marco de datos, cambiándolo a otro tipo. En su lugar, tuve que usar,dat <- data.frame(dat[-1, ])pero este es posiblemente un caso especial ya que este marco de datos inicialmente solo tenía una columna.fuente