Convierta los valores en una columna en nombres de fila en un dataframe existente en R

Me gustaría convertir los valores en una columna de un dataframe existente en nombres de fila. ¿Es posible hacer esto sin exportar el dataframe y luego volver a importarlo con row.names = call?

Por ejemplo, me gustaría convertir:

  > samp names Var.1 Var.2 Var.3 1 A 1 5 0 2 B 2 4 1 3 C 3 3 2 4 D 4 2 3 5 E 5 1 4 

dentro:

 > samp.with.rownames Var.1 Var.2 Var.3 A 1 5 0 B 2 4 1 C 3 3 2 D 4 2 3 E 5 1 4 

Gracias

Esto debería hacer:

 samp2 <- samp[,-1] rownames(samp2) <- samp[,1] 

En resumen, no hay alternativa a la reasignación.

Editar: Corrigiéndome a mí mismo, uno también puede hacerlo en su lugar: asignar atributos de nombre de fila, luego eliminar la columna:

 R> df<-data.frame(a=letters[1:10], b=1:10, c=LETTERS[1:10]) R> rownames(df) <- df[,1] R> df[,1] <- NULL R> df bc a 1 A b 2 B c 3 C d 4 D e 5 E f 6 F g 7 G h 8 H i 9 I j 10 J R> 

en una línea

 > samp.with.rownames <- data.frame(samp[,-1], row.names=samp[,1]) 

A partir de 2016 también puede usar el tidyverse .

 library(tidyverse) samp %>% remove_rownames %>% column_to_rownames(var="names") 

Puede ejecutar esto en 2 declaraciones simples:

 row.names(samp) <- samp$names samp[1] <- NULL