colsplitを使用して、データフレーム内のベクトルを分割しようとしています。colsplitのargとして正規表現があるという事実は、それが柔軟である可能性があると私に思わせますが、私は問題を抱えています(Rの正規表現を理解していないだけかもしれません)。
ここに問題があります:
ベクトルを作成しましょう...
> library(reshape)
> my_var_1 <- factor(c("x00_aaa_123","x00_bbb_123","x00_ccc_123","x01_aaa_123","x01_bbb_123","x01_ccc_123","x02_aaa_123","x02_bbb_123","x02_ccc_123"))
最初のアンダースコアで2つの列に分割したいと思います。言い換えれば、私は私の最終結果がこれになることを望んでいます...
x whatever
1 x00 aaa_123
2 x00 bbb_123
3 x00 ccc_123
4 x01 aaa_123
5 x01 bbb_123
6 x01 ccc_123
7 x02 aaa_123
8 x02 bbb_123
9 x02 ccc_123
私はそれを行うcolspan内の適切な正規表現を見つけようとしていますが、運がありません。これが私が得ることができる最も近いものです...
> colsplit(my_var_1, split="_", c("x","whatever"))
x whatever NA.
1 x00 aaa 123
2 x00 bbb 123
3 x00 ccc 123
4 x01 aaa 123
5 x01 bbb 123
6 x01 ccc 123
7 x02 aaa 123
8 x02 bbb 123
9 x02 ccc 123
これは、分割正規表現を単純な区切り文字として使用し、3つの列を提供します。2番目のアンダースコアを分割したくない(さらに悪いことに、私の実際のデータでは、2つだけではなく任意の数のアンダースコアがあります)。
欲しいものを出す「スプリット」に使える表現はありますか?
colsplitの正規表現によってグループでの一致が可能になり、グループの一致が分割の内容になることを期待していましたが、そうではないようです。
*編集(@Joshuaulrichのおかげで)新しいreshape2を使用すると、colsplitは「意図したとおりに」機能します!!!