Ответ: потому что 'x' и 'y' считаются вектором длиной в один символ, а не именем переменной.Здесь вы узнаете, почему неразумно использовать имена переменных с пробелами в R. Или на любом другом языке программирования в этом отношении.
Чтобы ссылаться на имена переменных с пробелами, вы можете использовать любое решение hasleys
a.matrix <- matrix(rep(1:10,3),ncol=3)
colnames(a.matrix) <- c("a name","another name","a third name")
qplot(`a name`, `another name`,data=as.data.frame(a.matrix)) # backticks!
или более формальный
qplot(get('a name'), get('another name'),data=as.data.frame(a.matrix))
Последний может использоваться в конструкциях, где вы передаете имя переменной в виде строки, например, в конструкции цикла:
for (i in c("another name","a third name")){
print(qplot(get(i),get("a name"),
data=as.data.frame(a.matrix),xlab=i,ylab="a name"))
Sys.sleep(5)
}
Тем не менее, лучшее решение - не использовать имена переменных с пробелами.