0

UNIXでgrep-fのようなリストのサブリストをgrepする方法は?私はデータフレームを持っていると言います

A 1 3 4 
B 4 5 6
C 7 8 9
D 1 3 4
E 1 3 3
F 2 4 5

そして私は必要なだけです

A 1 3 4 
C 7 8 9
E 1 3 3
F 2 4 5

のようにgrep c(A C E F)?どうもありがとう!

4

4 に答える 4

2

行名だと思いA C E Fます。データ フレームが と呼ばれていると仮定するとdd、基本的なサブセット化でうまくいくはずです。

##Select rows where the rownames are in a particular vector
dd[rownames(dd) %in% c("A", "C", "E", "F"), ]
于 2013-02-21T18:58:53.983 に答える
1

A..F列からのものであると仮定すると、次の戻り値V1を使用できます。greplTRUE/FALSE

# gives TRUE when V1 != B, D
df[grepl("[^BD]", df$V1), ]

#   V1 V2 V3 V4
# 1  A  1  3  4
# 3  C  7  8  9
# 5  E  1  3  3
# 6  F  2  4  5
于 2013-02-21T19:21:39.010 に答える
1

最初の列の A、C、E、または F のケースが正確に必要な場合は、次を使用する必要がありますgrep

 dfrm[ grep("^[ACEF]$", dfrm[,1]), ]

これらの文字が行名の場合は、rownames(dfrm)代わりに使用しますdfrm[,1]

新しいオブジェクトを作成するには:

 newobj <- dfrm[ grep("^[ACEF]$", dfrm[,1]), ] 

あなたのコメントへ:Rオブジェクトとして後でloadセッションに保存するには:

 save( newobj , file='newobj_file.rda')

テキストファイルとして保存するには:

 write.table( newobj, file='newobj_out.txt')

さまざまなオプションについては ?write.table を参照してください。さらに詳しい背景については、インポート/エクスポート マニュアルを参照してください。これは R インストールの一部です。ヘルプ機能を使用してください。私のマシンでは、Rディレクトリに次のように配置されています: .... /doc/manual/R-data.html

于 2013-02-21T19:37:11.617 に答える
0

DWin と csgilespie に感謝します。トリックは、私がもっと注目すべきベクトルです。

>dfrm
A 1 3 4 
B 4 5 6
C 7 8 9
D 1 3 4
E 1 3 3
F 2 4 5

興味のあるリストはファイルに保存されます

subset <-read.table("infile", header=F)
>subset
1 A
2 C
3 E
4 F
> dfrm[rownames(dfrm) %in% subset[,1], ]
A 1 3 4 
C 7 8 9
E 1 3 3
F 2 4 5

サブセットもデータフレームであることを知っておくべきでした。subset[,1] がうまくいきました。csgillespieさん、ありがとうございます!

于 2013-02-21T22:13:43.247 に答える