2016-12-22 7 views
1

ここには、\r\nを取り除いて、名前の後ろに名前のみと短縮記号を抽出するための例と解決策があります。またはf.sg。削除時に名前抽出をスピードアップする方法

この例と解決策は私には役立ちますが、遅いです。私はこのような数十万行を持っています。あなたは、正規表現を使用したい\r\n固定文字列に分割され、最初の要素を取得しない場合

x <- "yyy XXX i.e.\r\n   \r\n  \r\n   \r\n   \r\n INFO: 12235041 \r\n  \r\n   \r\n" 

do.call(rbind, lapply(1:length(x), function(i) strsplit(gsub('[\n\r]',' ',x)," ")[[i]][1])) 
+0

はラインがあなたのデータに一貫性のある壊れていますか? –

答えて

1

を使用することができます。

x <- "yyy XXX i.e.\r\n   \r\n  \r\n   \r\n   \r\n INFO: 12235041 \r\n  \r\n   \r\n" 
strsplit(x, "\r\n", fixed=TRUE)[[1]][1] 

R demo

を参照してください。

改行スタイルが一貫していない場合あなたのデータは、あなたが

sub("[\r\n].*", "",x) 

どこ[\r\n]マッチ\rまたは\nのいずれかのような正規表現の置換を使用することができ、その後、.*マッチ任意の0+文字と、この試合はsubで除去されます。同じことがregmatchesで達成することができ、文字列の先頭でCRとLF以外の1+文字にマッチする正規表現^[^\r\n]+

unlist(regmatches(x, regexpr("^[^\r\n]+", x))) 
1

我々はsub

sub("\r\n.*", "", x) 
#[1] "yyy XXX i.e." 
+1

うん...ああ...とにかく素敵な一日を。 – Sotos

+0

@Sotosあなたにも同じです。 – akrun

関連する問題