0

最初aggregateに、別の列ごとに、データ フレーム内の 1 つの列の平均を取得していました。

meanDemVoteHouseState <- aggregate(congress$X2012.House.Dem.vote, 
                          by = list(state = congress$state),
                                   FUN = mean)

次に、これを順番に印刷したいと思いました。最初に新しいデータフレームを見ました

str(meanDemVoteHouseState)

そして得た

'data.frame':   50 obs. of  2 variables:
 $ state: chr  "AK" "AL" "AR" "AZ" ...
 $ x    : num  0.29 0.34 0.29 0.462 0.566 ...

どうやら、新しい変数は現在「x」と呼ばれています。

しかし、私がそれを並べ替えようとしたとき:

meanDemVoteHouseState[order(x),]

「オブジェクト 'x' が見つかりません」というエラーが表示されました。

他にもいろいろ試してみましたが、どれもうまくいきませんでした。

私は何が欠けていますか?

4

2 に答える 2

3

あなたがしたい

 meanDemVoteHouseState[order(meanDemVoteHouseState[,"x"]),]

2段階でやるとスッキリする

 myind <- order(meanDemVoteHouseState[,"x"])   # need 'x' fully qualified
 meanDemVoteHouseState[myind, ]

または、次のようなものを使用しwith()ます...

于 2013-06-06T19:46:03.470 に答える
2

やった方が簡単かもしれません

meanDemVoteHouseState <- aggregate(X2012.House.Dem.vote ~ state,
                                   data = congress, FUN = mean)

これは変数名を維持します(そのままです)。あなたはまだソートする必要があります

ord <- with(meanDemVoteHouseState, order(X2012.House.Dem.vote))
meanDemVoteHouseState <- meanDemVoteHouseState[ord, ]

この時点で、変数とオブジェクトに短い名前を付けたくなるかもしれません。

于 2013-06-06T19:50:05.323 に答える