4

前の質問を参照してfactor、Rの特性についてもっと知りたいです。

次のようなデータセットがあるとします。

temp <- data.frame(x=letters[1:5],
                   y=1:5)
plot(temp)

のラベルxを別の文字に簡単に変更できます。

levels(temp[,"x"]) <- letters[6:10]

しかし、私がそれをいくつかに変更したい場合expression

levels(temp[,"x"]) <- c(expression(x>=1),
                        expression(x>=2),
                        expression(x>=3),
                        expression(x>=4),
                        expression(x>=5))

プロットでは、それに応じて>=符号は変わりません。そして、私はそれがそうであることを発見しましたclass(levels(temp[,"x"]))character、そうでexpression(x>=1)はありません。

因子として数学記号を追加したい場合、どうすればよいですか?

4

3 に答える 3

3

ggplotにレベル引数が表示されずlevels、文字ベクトルへの割り当てが機能しないはずです。発現ベクターを割り当てようとしている場合は、1回のexpression呼び出しを使用し、引数をコンマで区切って、scale関数でlabels引数を使用する必要があります。

 p <- qplot(1:10, 10:1)+ scale_y_continuous( breaks= 1:10, 
                            labels=expression( x>= 1, x>=2, x>=3, x>= 4,x>=5,
                                              x>= 6, x>=7, x>= 8,x>=9, x>= 10) )
 p

ここに画像の説明を入力してください

于 2011-09-22T03:24:23.330 に答える
2

文字列のままにしておきます

levels(temp[,"x"]) <- paste("x>=", 1:5, sep="")

次に、それらを軸ラベルとして含めたい場合は、次のようにして式に変換できます。

lev.as.expr <- parse(text=levels(temp[,"x"]))

あなたのプロットのために、あなたはそれからすることができます:

plot(temp, xaxt="n")
axis(side=1, at=1:5, labels=lev.as.expr)
于 2011-09-22T03:19:04.917 に答える
0

式は、プロットと出力のテキストを生成するために使用されますが、それ自体を変数名にすることはできません。このコマンドを使用してaxis()、独自のラベルを生成する必要があります。式を評価できるので、試してみることができます...

plot(temp, xaxt = 'n')
s <- paste('x>', 1:5, sep = '=')
axis(1, 1:5, parse(text = s))
于 2011-09-22T03:18:18.707 に答える