-2

1500のデータフレームのリストがあり、それぞれに3つの変数と8つの行があります(関数「split」で生成されます)

それらすべてを(独立して)列2で並べ替えてから、並べ替えたら、この列(列2)の特定の値より下のすべての行を削除したいと思います。

何か案が?

事前にどうもありがとうございました。

ティナ。

4

2 に答える 2

3

ここに小さな例があります。

# dummy list of data.frames
set.seed(45)
df <- data.frame(V1=sample(8), V2= sample(8), V3 = sample(8))
df.list <- list(df, df, df, df, df, df, df, df)

# function that does the job
df.out <- lapply(df.list, function(x) {
    x[order(x$V2)), ] # order by 2nd column using column name
    x[x$V1 > 3, ] # filter by some criteria
    # you can combine these two lines as:
    # x[order(x$v2)), ][x$v2 > 3, ] (thanks @Ananda for the suggestion)
})
于 2013-03-07T18:27:52.940 に答える
1

いくつかの提案:

並べ替えは処理が遅くなる傾向があります。並べ替えの前に最初にサブセットを実行することで、処理を少し高速化できる場合があります。または、並べ替える必要がまったくない場合もあります。

データ オブジェクトを断片に分割し、各断片に関数を適用してから結果を元に戻したい場合はいつでも、plyr パッケージの使用を検討してください。プロセスが簡単になる可能性があります。

あなたの最終目標は何ですか?全体をもっと簡単な方法で行うことができるかもしれません。

于 2013-03-07T18:50:38.280 に答える