2
私はrのようなデータフレームを持っています。文字列を抽出し、rの他の列に塗りつぶします。
df<-data.frame(matrix(NA, nrow = 4, ncol = 4))
df[,1]<-c("472=20140112224524497,5752=122524,223=ZHRR6,69=0,"
,"472=20140112224606569,223=BNCG6,315=CC26R,69=22,"
,"50=986,472=20140112224607924,223=ZHCG6,69=98,"
,"66=2315,472=20140112224502367,379=2016,223=CMCG9,69=274,")
私が望むのは、最初の列から文字列を抽出し、各行の2番目から4番目の列までを埋めることです。
カラム2、472 =と最初の "、"の間に文字列が必要です。
カラム3、私は223 =とそのあとの最初の "、"の間の文字列が必要です。
カラム4、私は69 =と最初の "、"の間の文字列が必要です。
データにパターンはなく、値は整数またはアルファベットのいずれかです。
私の現在のコードは次のとおりです。
df[,2:4]<-c(unlist(ex_between(df$X1, c('472='), c(','), extract=TRUE))
,unlist(ex_between(df$X1, c('223='), c(','), extract=TRUE))
,unlist(ex_between(df$X1, c('69='), c(','), extract=TRUE)))
このコードは動作します。ただし、1日に100万行以上あり、12個の列を埋める必要があるため、非常に遅いです。
誰かがプロセスを修正してスピードアップすることができたら、本当に感謝しています。私たちは、正規表現に続く番号と一致するパターンを指定str_extract
(\\d+
)を使用することができます
どうもありがとう、
各行にstrsplitをカンマで入力してください。また、適用する必要がありますか、または行ごとに機能します – Rockbar