7

データフレームを参照せずに、データフレームを条件付きでサブセット化したい。たとえば、次のような場合:

long_data_frame_name <- data.frame(x=1:10, y=1:10)

私は言いたい:

subset <- long_data_frame_name[x < 5,]

しかし、代わりに、私は言わなければなりません:

subset <- long_data_frame_name[long_data_frame_name$x < 5,]

plyr と ggplot はこれをとても美しく処理します。データフレームのサブセット化を同様に美しくするパッケージはありますか?

4

4 に答える 4

10

It sounds like you are looking for the data.table package, which implements indexing syntax just like that which you describe. (data.table objects are essentially data.frames with added functionality, so you can continue to use them almost anywhere you would use a "plain old" data.frame.)

Matthew Dowle, the package's author, argues for the advantages of [.data.table()'s indexing syntax in his answer to this popular SO [r]-tag question. His answer there could just as well have been written as a direct response to your question above!

Here's an example:

library(data.table)
long_data_table_name <- data.table(x=1:10, y=1:10) 

subset <- long_data_table_name[x < 5, ]
subset
#    x y
# 1: 1 1
# 2: 2 2
# 3: 3 3
# 4: 4 4
于 2012-11-01T15:20:33.590 に答える
3

この質問が投稿され、回答された後にリリースされた dplyr を試してください。多くの一般的なデータ フレーム変更タスクに最適です。

library(dplyr)
subset <- filter(long_data_frame_name, x > 5)

または、同等に:

subset <- long_data_frame_name %>% filter(x > 5)
于 2014-11-18T02:23:17.393 に答える