transformar tablas studio recodificar funcion categorizar categoricas r r-faq

tablas - transformar variables en r



Restricciones de nombre variable en R (4)

¿Cuáles son las restricciones en cuanto a qué caracteres (y quizás otras restricciones) se pueden usar para un nombre de variable en R?

(Esto grita de referencia general, pero no puedo encontrar la respuesta)


¡Casi ninguno! Puedes usar ''asignar'' para hacer nombres de variables ridículas:

assign("1",99) ls() # [1] "1"

Sí, esa es una variable llamada ''1''. Dígito 1. Afortunadamente, no cambia el valor del número entero 1, y tiene que trabajar un poco más para obtener su valor:

1 # [1] 1 get("1") # [1] 99

Las "restricciones sintácticas" que algunas personas podrían mencionar son impuestas puramente por el analizador. Fundamentalmente, hay muy poco que no se puede llamar un objeto R Simplemente no puede hacerlo a través del operador de asignación ''<-''. "get" te hará libre :)


Lo siguiente puede no responder directamente a su pregunta, pero es de gran ayuda. Pruebe el comando de exists() para ver si algo ya existe y de esta manera sabe que no debe usar los nombres de sistema para sus variables o funciones. Ejemplo...

> exists(''for'') [1] TRUE >exists(''myvariable'') [1] FALSE


Usar la función make.names () del paquete base incorporado puede ayudar:

is_valid_name<- function(x) { length_condition = if(getRversion() < "2.13.0") 256L else 10000L is_short_enough = nchar(x) <= length_condition is_valid_name = (make.names(x) == x) final_condition = is_short_enough && is_valid_name return(final_condition) }


Usted podría estar buscando la discusión de ?make.names :

Un nombre sintácticamente válido consta de letras, números y el punto o 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.

En el archivo de ayuda, hay un enlace a una lista de palabras reservadas, que son:

Si no, repita mientras funciona para el próximo descanso

VERDADERO FALSO NULO Inf NaN NA NA_integer_ NA_real_ NA_complex_ NA_character_

Muchas otras buenas notas de los comentarios incluyen el punto de James a la cran.r-project.org/doc/FAQ/R-FAQ.html#What-are-valid-names_003f aborda este problema y el puntero de Josh a una question SO relacionada con la verificación de nombres sintácticamente válidos.