a の列名がdata.frame
数字で始まっている場合、またはスペースが含まれているaes_string()
場合、それらを処理できません。
foo=data.frame("1st Col"=1:5, "2nd Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2])) + geom_point()
# Error in parse(text = x) : <text>:1:2: unexpected symbol
# 1: 1st
# ^
foo=data.frame("First Col"=1:5, "Second Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2])) + geom_point()
# Error in parse(text = x) : <text>:1:7: unexpected symbol
# 1: First Col
# ^
foo=data.frame("First_Col"=1:5, "Second_Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2]))+geom_point()
# Now it works
列名にスペースを含める方法はありますか、それとも数字で始まり、ggplot2 で使用できますか? 列名がわからない可能性があることを考慮してください。そのため、以下のような定数列名の例を提供することは避けてください。
aes_string(x=`1st Col`, y=`2nd Col`)