tablas - seleccionar datos en r
Convierta los valores en una columna en nombres de fila en un marco de datos existente en R (4)
Me gustaría convertir los valores en una columna de un marco de datos existente en nombres de fila. ¿Es posible hacer esto sin exportar el marco de datos 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
A partir de 2016 también puede usar el tidyverse
.
library(tidyverse)
samp %>% remove_rownames %>% column_to_rownames(var="names")
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
b c
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>
Puede ejecutar esto en 2 declaraciones simples:
row.names(samp) <- samp$names
samp[1] <- NULL
en una línea
> samp.with.rownames <- data.frame(samp[,-1], row.names=samp[,1])