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)?どうもありがとう!
行名だと思いA C E Fます。データ フレームが と呼ばれていると仮定するとdd、基本的なサブセット化でうまくいくはずです。
##Select rows where the rownames are in a particular vector
dd[rownames(dd) %in% c("A", "C", "E", "F"), ]
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
最初の列の 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
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さん、ありがとうございます!