我试图使用colsplit来分解数据帧中的向量.事实上,我们将正则表达式作为arsp到colsplit使我认为它可以灵活,但我遇到了麻烦(可能只是因为我不理解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"))
Run Code Online (Sandbox Code Playgroud)
我想在第一个下划线上将它分成两列.换句话说,我希望我的最终结果是......
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
Run Code Online (Sandbox Code Playgroud)
我试图在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
Run Code Online (Sandbox Code Playgroud)
这使用拆分正则表达式作为一个简单的分隔符,它给了我三列.我想不拆分第二个下划线(更糟糕的是,在我的实际数据中,我有一个任意数量的下划线,而不仅仅是两个).
是否有一个表达我可以用于"分裂",它会给出我想要的东西?
我原本希望colsplit中的正则表达式允许我匹配组,组匹配将是分裂的内容,但似乎并非如此.
*编辑(感谢@Joshuaulrich)当使用更新的reshape2时,colsplit"按预期"工作!
您的代码为我抛出了一个错误:
> colsplit(my_var_1, split="_", c("x","whatever"))
Error in colsplit(my_var_1, split = "_", c("x", "whatever")) :
unused argument(s) (split = "_")
Run Code Online (Sandbox Code Playgroud)
split不是一个论据colsplit.你想要的论点是pattern,或者你可以只依靠位置匹配:
> colsplit(my_var_1, "_", c("x","whatever"))
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3997 次 |
| 最近记录: |