/ / Uso de la puntuación en los nombres de las columnas R [duplicado] - r, cadena, marco de datos

Usar la puntuación en los nombres de columna R [duplicar] - r, cadena, marco de datos

Problema:

Estoy (tratando de) construir un data.frame en R, donde el nombre de la columna a veces incluye caracteres de puntuación como "?".

Sin embargo, R los convierte en "." , por ejemplo:

Código

t= data.frame("a?a" = c(1,2,3), "bee" = c(200,300,400))

t= data.frame("a.a" = c(1,2,3), "bee" = c(200,300,400))

ambos regresan

t
a.a bee
1   1 200
2   2 300
3   3 400

Tampoco podría escapar al trabajo (y me gustaría evitarlo, ya que tengo muchas cadenas sin caracteres especiales).

t= data.frame("a\?a" = c(1,2,3), "bee" = c(200,300,400))

> t
a..a bee
1    1 200
2    2 300
3    3 400

Pregunta:

Me gustaría tener caracteres como signos de interrogación y puntos representados en los nombres de mis columnas (las columnas contienen resultados para las búsquedas de expresiones regulares); por lo menos, deben mantenerse separados.

  • ¿Hay alguna manera de hacerlo?

Sentí que esto podría haber sido mencionado antes, pero no pude encontrarlo aquí; agradecido por cualquier punteros. ¡Gracias!

Respuestas

4 para la respuesta № 1

Los nombres de columna de un data.frame deben ser nombres de variable válidos para su uso con funciones que admitan interfaces de fórmula y evaluación no estándar. los data.frame función impone estos requisitos "limpiando" los nombres para usted a través del make.names() función. Si insiste en usar nombres "inválidos", simplemente configure el check.names= parámetro a FALSO.

data.frame("a?a" = c(1,2,3), "bee" = c(200,300,400), check.names=FALSE)
#   a?a bee
# 1   1 200
# 2   2 300
# 3   3 400