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=T
losT
soportesTRUE
, por lo que este parámetro le dice a R que cargue el encabezado. Consulte?read.table
para obtener más detalles.drop = FALSE
indexació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 3
Dicho 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óndefoo
está su objeto de datos, dice sobre los tipos de datos.Parece que solo necesita
header = TRUE
leer 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
dplyr
paquete 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