我正在尝试使用 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"))
我想在第一个下划线处将它分成两列。换句话说,我希望我的最终结果是……
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
它使用拆分正则表达式作为简单的分隔符,它给了我三列。我不想拆分第二个下划线(更糟糕的是,在我的真实数据中,我有任意数量的下划线,而不仅仅是两个)。
有没有可以用于“拆分”的表达式来给出我想要的?
我曾希望 colsplit 中的正则表达式允许我在组上进行匹配,而组匹配将是拆分的内容,但情况似乎并非如此。
*编辑(感谢@Joshuaulrich)colsplit 在使用较新的 reshape2 时“按预期”工作!!!