10

列名に特殊文字が含まれているデータ フレームのプロットを作成したいと思います。次の例を検討してください。

f <- data.frame(foo=c(1, 2, 3), bar=c(4, 5, 6))
# The following line works fine
ggplot(f) + geom_point(aes_string(x="foo", y="bar"))
names(f) <- c("foo", "bar->baz")
# The following also works, but seems not elegant
ggplot(f) + geom_line(aes(x=foo, y=f[,"bar->baz"])) 
# I'd like something like the following, but this doesn't work.
ggplot(f) + geom_line(aes_string(x="foo", y="bar->baz"))

最後のコマンドの出力は次のとおりです。

Error in eval(expr, envir, enclos) : object 'bar' not found

このプロットを作成する方法を知っている人はいますか? それとも、これは単にggplot の制限ですか?

4

2 に答える 2

13

次のようにバッククォート `` を追加する必要があります。

ggplot(f) + geom_line(aes_string(x="foo", y="`bar->baz`"))

または

ggplot(f) + geom_line(aes(x=foo, y=`bar->baz`))
于 2013-10-25T09:28:46.570 に答える