2016-09-07 9 views
1

- 「avd_1xx_2xx_3xx」私はX(文字列)から番号を抽出し、新しい変数でそれらを配置する必要があり


num1を< - 1XX
NUM1 < - 2XX
NUM1 < - 3XX

しかし、私は、例えばそれぞれ数
の桁の数を予測することができない、このxは "avd_1_2_3" 又は "avd_11_21_33" であるかR - エキス数文字列から(特別なソリューション)私はこのX <ような文字列を持っている

が好きであろう

解決策を教えていただけますか? ありがとう

答えて

1

str_extractからstringrまでを使用できます。複数の一致を抽出するには、str_extract_allを使用し、長さ1のlistを返します( 'x'に1つの要素があるため)。 list要素を抽出するには、[[、つまり[[1]]を使用できます。

library(stringr) 
str_extract_all(x, "\\d+[a-z]*")[[1]] 
#[1] "1xx" "2xx" "3xx" 

base Rを用いて同様のオプションがregmatches/gregexpr

regmatches(x, gregexpr("\\d+[a-z]*", x))[[1]] 
#[1] "1xx" "2xx" "3xx" 

我々は一致パターンは、1つ以上の数字(\\d+)であるゼロが続く以上の小文字([a-z]*)であろう。


グローバル環境で複数のオブジェクトを持つのではなく、vectorとしておくことをお勧めします。

+0

ありがとう、akrun。それは動作します。 [[1]]がここで何を意味するのか教えていただけますか? –

+0

@YamPakChing投稿を更新しました。あなたの返事をありがとう – akrun

関連する問題