studio - superponer graficas en r
Convertir una fila de un marco de datos a vector (4)
Cuando extrae una sola fila de un marco de datos, obtiene un marco de datos de una sola fila. Convierta a un vector numérico:
as.numeric(df[1,])
Como sugiere @Roland, unlist(df[1,])
convertirá el cuadro de datos de una sola fila en un vector numérico sin soltar los nombres. Por unname(unlist(df[1,]))
tanto, unname(unlist(df[1,]))
es otra forma un poco más explícita de obtener el mismo resultado.
Quiero crear un vector de una fila de un marco de datos. Pero no quiero tener que remar nombres de columnas. Intenté varias cosas ... pero no tuve suerte.
Este es mi marco de datos:
> df <- data.frame(a=c(1,2,4,2),b=c(2,6,2,1),c=c(2.6,8.2,7.5,3))
> df
a b c
1 1 2 2.6
2 2 6 8.2
3 4 2 7.5
4 2 1 3.0
Lo intenté:
> newV <- as.vector(df[1,])
> newV
a b c
1 1 2 2.6
Pero realmente quiero algo así:
> newV <- c( 1,2,2.6)
> newV
[1] 1.0 2.0 2.6
Cualquier ayuda, muy apreciada.
Las columnas de marcos de datos ya son vectores, solo tienes que sacarlos. Tenga en cuenta que coloca la columna que desea después de la coma, no antes de ella:
> newV <- df[,1]
> newV
[1] 1 2 4 2
Si realmente quiere una fila, haga lo que dijo Ben y utilice las palabras correctamente en el futuro.
Recomiendo unlist
, que guarda los nombres.
unlist(df[1,])
a b c
1.0 2.0 2.6
is.vector(unlist(df[1,]))
[1] TRUE
Si no quieres un vector con nombre:
unname(unlist(df[1,]))
[1] 1.0 2.0 2.6
Si no quiere cambiar a numérico, puede intentarlo.
> as.vector(t(df)[,1])
[1] 1.0 2.0 2.6