observation name examples data column r dataframe row

name - slice data frame r



Elimine las Ășltimas N filas en el marco de datos con el nĂșmero arbitrario de filas (2)

Tengo un marco de datos y quiero eliminar las últimas N filas de él. Si quiero eliminar 5 filas, actualmente uso el siguiente comando, que en mi opinión es bastante intrincado:

df<- df[-seq(nrow(df),nrow(df)-4),]

¿Cómo lograría la tarea? ¿Hay alguna función conveniente que pueda usar en R?

En Unix, usaría:

tac file | sed ''1,5d'' | tac


Este toma una línea más, pero es mucho más legible:

n<-dim(df)[1] df<-df[1:(n-5),]

Por supuesto, puede hacerlo en una línea insertando el comando dim directamente en la instrucción de reasignación. Supongo que esto es parte de una secuencia de comandos reproducible, y puede volver sobre sus pasos ... De lo contrario, recomiendo encarecidamente en esos casos para guardar en una variable diferente (por ejemplo, df2 ) y luego eliminar la copia redundante solo después de que está seguro de que obtuve lo que querías


head con un índice negativo es conveniente para esto ...

df <- data.frame( a = 1:10 ) head(df,-5) # a #1 1 #2 2 #3 3 #4 4 #5 5

ps su ejemplo seq() puede escribirse un poco menos (?) torpemente usando los argumentos nombrados by y length.out (acortado a len ) como este -seq(nrow(df),by=-1,len=5) .