strsplit()
に非常に奇妙な動作があります。 this questionと似ていますが、最初は空の要素が返されている理由がわかります。誰かが知っていますか?strsplitが不可視の要素を返します
unlist(strsplit("88F5T7F4T13F", "\\d+"))
[1] "" "F" "T" "F" "T" "F"
私はそれを信頼しなければならない(88 * FALSE 5 * TRUE 7 * TRUE 13 * FALSE * 4 FALSE)長い論理ベクトルを再生し、その文字列のVORを使用しているので...
回答unlist(strsplit("88F5T7F4T13F", "\\d+"))[-1]
作品、それは堅牢ですか?
これは正常な動作が期待されており、ドキュメントで説明されています。 –
開始時に数字があるため、空の要素が表示されます。数字で分割するので、最初の分割は文字列の開始と最初の 'F'の間に起こり、文字列startの空の文字列が結果のリストに追加されます。 'unlist(strsplit(sub("^\\ d + "、" "、" 88F5T7F4T13F ")、" \\ d + "))'またはあなたの解を使うことができます。 –
空要素をより体系的に削除するには、num_split = unlist(strsplit( "88F5T7F4T13F"、 "\\ d +"));を使用することもできます。 num_split = num_split [num_split!= ""] –