2

/tmp/thefile.csv(CSV ファイル)に次のデータがあるとします。

AA,12
AB,1
BA,2

および次のRコード:

v = read.csv('/tmp/thefile.csv', header=F)
library('ggplot2')
v$V3 = reorder(v$V1, v$V2)
ggplot(v, aes(x=v$V3, y=v$V2), stat='identity') + geom_bar(fill='dark grey', stat="identity")

プロットはバーを昇順で示しています。これは私が望むものです。線がないreorder場合、プロットは因子に従ってアルファベット順に表示されます。

でも:

> v
  V1  V2  V3
1 AA  12  AA
2 AB   1  AB
3 BA   2  BA

順序がまだアルファベット順であることを示しています。ggplot番号順はどのように認識されますか?

4

1 に答える 1

4

見るとv$V3、次の ( print) 出力が得られます。

[1] AA AB BA
attr(,"scores")
AA AB BA 
12  1  2 
Levels: AB BA AA

一番下の行には、指定されたレベルの順序があります。

levelsこの情報は、関数を使用してより簡単に取得できます。

levels(v$V3)
[1] "AB" "BA" "AA"

この関数reorderは、ベクトル内の値 (またはその順序) を変更しませんが、因子レベルの順序を示す属性を設定 (変更)levelsします。scores

attributes(v$V3)
$levels
[1] "AB" "BA" "AA"

$class
[1] "factor"

$scores
AA AB BA 
12  1  2 
于 2013-01-08T09:34:19.260 に答える