The problem arises because you are trying to read data with column names that contain spaces.
When you read this data with read.csv
, these column names are converted to syntactically valid R names. Here is an example illustrating the problems:
some.file <- ' "Col heading A", "Col heading B" A, 1 B, 2 C, 3 '
Read it with read.csv
default settings:
> 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"
To avoid this, use the argument 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"
Now the remaining problem is that the column name cannot contain spaces. Therefore, to refer to these columns, you need to wrap the column name in backlinks:
> x2$`Col heading A` [1] ABC Levels: ABC
For more information, see ?read.csv
and, in particular, information for check.names
.
There is also some information about backticks in ?Quotes
source share