una seleccionar renombrar nombre filas fila estructura eliminar data contar columnas cambiar r dataframe names illegal-characters

seleccionar - Especificar nombres de columna en un data.frame cambia los espacios a "."



renombrar columnas data frame r (3)

Puede cambiar los nombres de los marcos de datos existentes para que contengan espacios, es decir, usar su ejemplo

x <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10) df <- data.frame("Label 1"=x,"Label 2"=rnorm(100)) colnames(df) <- c("Label 1", "Label 2") head(df, 3)

devoluciones

Label 1 Label 2 1 1 0.2013347 2 2 1.8823111 3 3 -0.5233811

y aún puede acceder a las columnas usando el operador $, solo necesita usar comillas dobles, por ejemplo,

df$"Label 2"[1:3]

devoluciones

[1] 0.2013347 1.8823111 -0.5233811

Me parece bastante inconsistente convertir automáticamente los nombres de columna en la creación de data.frame, pero no hacer lo mismo durante la modificación del nombre de columna, pero así es como funciona R en este momento.

Digamos que tengo un data.frame, así:

x <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10) df <- data.frame("Label 1"=x,"Label 2"=rnorm(100))

cabeza (df, 3)

devoluciones:

Label.1 Label.2 1 1 1.9825458 2 2 -0.4515584 3 3 0.6397516

¿Cómo consigo que R deje de reemplazar automáticamente el espacio con un punto en el nombre de la columna? es decir, "Etiqueta 1" en lugar de "Etiqueta.1".


Puede establecer check.names = FALSE en data.frame (así como en read.table ):

df <- data.frame("Label 1" = 1:3, "Label 2" = rnorm(3), check.names = FALSE)

devoluciones:

Label 1 Label 2 1 1 0.2013347 2 2 1.8823111 3 3 -0.5233811

Desde ?data.frame :

check.names
lógico. Si es TRUE , los nombres de las variables en el marco de datos se verifican para garantizar que sean nombres de variables válidas desde el punto de vista sintáctico y no estén duplicados. Si es necesario, se ajustan (por make.names ) para que lo sean.

De ?make.names :

Un nombre sintácticamente válido consta de letras, números y el punto o los caracteres subrayados y comienza con una letra o el punto no seguido de un número. Los nombres como ".2way" no son válidos, y tampoco lo son las palabras reservadas.

Todos los caracteres no válidos se traducen a " . "

Además, si necesita subcontratar una variable con un nombre ''no válido'' usando $ , puede usar backticks ` . Por ejemplo:

df$`Label 1`


Usted no

Con el espacio que desea, el formato no satisfaría los requisitos para un identificador que se reproducirá cuando use df$column.1 , que no pudo hacer frente a un espacio. Así que vea la función make.names() para detalles o un ejemplo:

> make.names(c("Foo Bar", "tic tac")) [1] "Foo.Bar" "tic.tac" >