我有以下矢量:拆分或替代字符串與通配符中的R
a <- c("abc_lvl1", "def_lvl2")
我基本上要分成兩個載體: ("abc", "def")
和("lvl1", "lvl2)
。我知道如何用子替換:
sub(".*_", "", a)
[1] "lvl1" "lvl2"
我認爲這可以翻譯爲「搜索任何數量的任何字符之前」_「並且不進行任何替換。因此 - 我想 - 這應該給我的其他所需的載體:
sub("_*.", "", a)
,但它只是刪除了主角:
[1] "bc_lvl1" "ef_lvl2"
在哪裏搞錯了嗎? 這實質上是excel中「text-to-columns」函數的等價物。
只需使用'strsplit'? – A5C1D2H2I1M1N2O1R2T1
似乎是合法的,但它創建了一個向量列表,我需要再次分割:strsplit(a,「_」) [[1]] [1]「abc」「lvl1」 [[2 ]] [1]「def」「lvl2」 – nouse
'*'表示前面的字符出現零次或多次出現,'.'表示任何字符,所以'_ *。'刪除零後面跟一個字符。你想要'_。*'這將刪除下劃線,然後是任何字符的所有進一步出現。 –