Проблема возникает из-за того, что вы пытаетесь прочитать данные с именами столбцов, которые содержат пробелы.
Когда вы читаете эти данные с помощью read.csv
, эти имена столбцов преобразуются в синтаксически допустимые имена R.Вот пример, чтобы проиллюстрировать проблемы:
some.file <- '
"Col heading A", "Col heading B"
A, 1
B, 2
C, 3
'
Прочитайте его с настройками по умолчанию read.csv
:
> x1 <- read.csv(text=some.file)
> x1
Col.heading.A Col.heading.B
1 A 1
2 B 2
3 C 3
4 NA
> names(x1)
[1] "Col.heading.A" "Col.heading.B"
Чтобы избежать этого, используйте аргумент check.names=FALSE
:
> x2 <- read.csv(text=some.file, check.names=FALSE)
> x2
Col heading A Col heading B
1 A 1
2 B 2
3 C 3
4 NA
> names(x2)
[1] "Col heading A" "Col heading B"
Теперь остающаяся проблема заключается в том, что имя столбца не может содержать пробелы.Поэтому, чтобы обратиться к этим столбцам, вам нужно заключить имя столбца в обратные черты:
> x2$`Col heading A`
[1] A B C
Levels: A B C
Для получения дополнительной информации см. ?read.csv
и, в частности, информацию для check.names
.
Также есть некоторая информация о бэктиках в ?Quotes