2

Rでは、頻度による順序付けが非常に簡単であることを知っています。data.frameと数値dfの列がある場合、次のようになります。column1

order(df$column1,decreasing=T)

私のdata.frameは、rbind()小さいdata.framesで使用した結果です。Trial元の各data.frameには、 1からnrow(GralData)の範囲の値で呼び出される列がありましたが、一部の数値が欠落していました(外れ値の削除のため)。別の列が呼び出されTrialType、2つの可能な文字値を持つことができます:"Regular"または"Random"

私がやりたいのは、GralDataから2つのdata.framesを作成することです。1つRegularはTrialTypeのみを含み、もう1つは。のみを含みRandomます。さらに、new.data.frameを。の値に従って降順で並べ替えたいと思いますTrial。これは私が使用しているものです:

GralData_Regular <- GralData[GralData$TrialType=="Regular" & order(GralData$Trial,decreasing=TRUE),]

ただし、代わりに、このコマンドは、行の元となったdata.framesを念頭に置いて行を並べ替えています。したがって、すべてのデータを混合するのではなく、列の値の基準に従ってのみTrial並べ替えます。値は、最初にdata.frameで並べ替えられ、次に。の値の順序で並べ替えられますTrial。したがって、Trial列は次のようになります。

 1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,etc...

そして私はそれをしたい

1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,etc...

私は自分自身を明確にしたいと思います。これは非常に小さな問題であり、基本的なものが欠けているに違いないと確信していますが、これを広範囲にグーグルで検索したところ、問題への参照は見つかりませんでした。どんなアドバイスも大歓迎です。

4

1 に答える 1

4

あなたは2つのステップでそれをしなければなりません:

## Subset the original data frame    
GralData_Regular <- GralData[GralData$TrialType=="Regular",]
## Sort it
GralData_Regular <- GralData_Regular[order(GralData_Regular$Trial,decreasing=TRUE),]

演算子は、&論理ベクトルを組み合わせるために使用されます。ここで、最初の条件は論理ベクトル(GralData$TrialType=="Regular")ですが、2番目の条件は数値(order(GralData$Trial,decreasing=TRUE))です。

于 2013-03-14T15:13:10.777 に答える