Есть ли причина, по которой R не позволит мне использовать число в качестве имени столбца моего фрейма данных?
Также заметил, что если я делаю data.frame(XX)
, он добавляет X
ко всем заголовкам столбцов, у которых есть числа впереди.
Есть ли причина, по которой R не позволит мне использовать число в качестве имени столбца моего фрейма данных?
Также заметил, что если я делаю data.frame(XX)
, он добавляет X
ко всем заголовкам столбцов, у которых есть числа впереди.
Да, потому что R не позволяет именам объектов начинаться с цифр. Если бы вы вызвали attach()
с data.frame, это вызвало бы некоторые проблемы.
Функция data.frame
(и read.table
) имеет параметр check.names
(по умолчанию TRUE
)
Если
TRUE
, то имена переменных во фрейме данных проверяются, чтобы убедиться, что они являются синтаксически допустимыми именами переменных и не дублируются. При необходимости они подгоняются (поmake.names
) так, чтобы они были.
От ?make.names
:
Синтаксически правильное имя состоит из букв, цифр и символов точки или подчеркивания и начинается с буквы или точки, за которой не следует цифра. [...] При необходимости добавляется символ «
X
».
attach()
и поймите, почему у них должны быть имена переменных. Как показывает Марек, вы могли сделать это, но это не значит, что вы должны.
- person Dirk Eddelbuettel; 06.08.2010
Работает на меня
data.frame(`1`=rnorm(3), `2`=head(letters,3), check.names=FALSE)
# 1 2
# 1 0.5019 a
# 2 1.1148 b
# 3 0.4787 c