5

解決策を見つけることができなかった問題があります。2 つの異なるパターンで見つかるさまざまな形容詞と分詞を含むデータ フレームがあります。

head(THAT_EXT_COMBINED)
          ID  PATTERN         NODE
1  HRE_721_03 THAT_EXT     accepted
2 G08_1321_01 THAT_EXT acknowledged
3   AAW_47_03 THAT_EXT acknowledged
4 G20_1490_01 THAT_EXT     alarming
5  FY8_732_02 THAT_EXT      amazing
6  HEM_128_03 THAT_EXT      amazing

str(THAT_EXT_COMBINED)
'data.frame':   1450 obs. of  3 variables:
$ ID     : Factor w/ 1450 levels "A05_253_01","A05_277_07",..: 1109 827 265 853 812 1046 369 810 214 41 ...
$ PATTERN: Factor w/ 2 levels "THAT_EXT","THAT_POST": 1 1 1 1 1 1 1 1 1 1 ...
$ NODE   : Factor w/ 201 levels "accepted","acknowledged",..: 1 2 2 6 8 8 8 10 12 15 ...

同じプロット内の 2 つのヒストグラムを使用して、これら 2 つのパターンの形容詞を頻度を減らしてプロットしたいと考えています。問題は、2 つの間に重複があることです (つまり、いくつかの形容詞が両方のパターンで見つかります) が、各ヒストグラムを最も頻繁な形容詞から開始したいだけです。

個々のヒストグラムを作成するときにソートに使用したコードは次のとおりです。

THAT_EXT_COMBINED <- within(THAT_EXT_COMBINED,
                            NODE <- factor(NODE,
                                           levels=names(sort(table(NODE),
                                                             decreasing=TRUE))))

2つのパターンの頻度を組み合わせているため、これが機能しない理由は理解できますが、解決方法はまだわかりません。私は運なしで reorder() を試してきました。何か案は?

プロットに使用しているコードは次のとおりです。

graph<-ggplot(THAT_EXT_COMBINED, aes(x=NODE, fill=PATTERN)) + 
geom_histogram(binwidth=.5,  position="dodge")
graph + opts(axis.text.x = theme_blank()) + #removes text labels on x-axis
scale_y_continuous("Frequency") + 
scale_x_discrete("Adjectives",breaks=NULL)+ 
opts(title = expression("Distribution of Adjectives"))

結果のプロットの問題は、形容詞が 2 つのパターンのそれぞれの頻度によって厳密に順序付けられていないことです。誰でもこれを手伝ってもらえますか?


というわけで、上記のコードで作成したグラフがこちら。私が代わりに望むのは、各パターンの形容詞が降順でプロットされることです。つまり、両方のヒストグラムが頻度の降順でプロットされます。これはソートの質問に要約されると思います。さまざまな方法で要因を並べ替えようとしましたが、最初にパターンで、その範囲内でノードの頻度で並べ替えることができませんでした。

4

1 に答える 1

0
library(reshape)
df <- cast(THAT_EXT_COMBINED, PATTERN ~.) 
colnames(df)[2] <- "Counts"

ggplot(df, aes(reorder(PATTERN, Counts), Counts, fill=PATTERN))
    + geom_bar(position="dodge") # + ...
于 2012-07-05T18:08:39.427 に答える