2017-06-21 2 views
0

私はこのようなデータフレームを持っています:Rで新しいデータフレームにするために各行から同様の数字を抽出します

matrix.Names。

Per1_23_3_Map1_Ext_5 

Per1_24_2_Map2_Ext_5 

Per2_23_3_Map1_Ext_5 

Per2_25_1_Map2_Ext_5 

これは多くの行でこのようになります。 Rコードを使って各行で23,24、または25を抽出し、それをそれぞれのデータフレームに入れる方法はありますか?特定の行で23,24、または25のいずれであるかはランダムです。

+0

を参照してください '?substr'です。 'substr(" Per1_23_3_Map1_Ext_5 "、1,3)を試して試してみてください。 – lmo

+0

しかし、これを一度に複数の行にどのように適用すればよいですか? – GR1818

+1

'?substr'で指摘したように、関数はベクトル化されているので、文字列を変数の名前で置き換えることができ、それは各要素で動作します。 – lmo

答えて

1

我々はstr_extract

library(stringr) 
sort(as.numeric(str_extract(v1, "(?<=_)[0-9]+"))) 

それとも別のオプションを使用することができますがsub

sort(as.numeric(sub("^[^_]+_(\\d+).*", "\\1", v1))) 
関連する問題