這裏的方法將會有很大的不同,這取決於這實際上是你的字符串的樣子還是隻是一個例子。如果他們總是兩個字母和數字,你可以substring
:
> df <- data.frame(col1 = c("ab 12 14 56", "xb 23 234 2342 2", "ad 23 45"))
>
> df$col1.1 <- sapply(df$col1, substring, 0, 2)
>
> df$col1.2 <- sapply(df$col1, substring, 3)
>
> df
col1 col1.1 col1.2
1 ab 12 14 56 ab 12 14 56
2 xb 23 234 2342 2 xb 23 234 2342 2
3 ad 23 45 ad 23 45
如果長度和琴絃的持倉變化,正則表達式可能更適合。使用基礎R的方法,你可以只提取數字或字母(保持空格):
> df <- data.frame(col1 = c("ab 12 14 56", "xb 23 234 2342 2", "ad 23 45"))
> df$col1.1 <- sapply(regmatches(df$col1, gregexpr("[a-zA-Z]", df$col1)), paste, collapse = "")
> df$col1.2 <- sapply(regmatches(df$col1, gregexpr("[0-9]\\s*", df$col1)), paste, collapse = "")
> df
col1 col1.1 col1.2
1 ab 12 14 56 ab 12 14 56
2 xb 23 234 2342 2 xb 23 234 2342 2
3 ad 23 45 ad 23 45
它的工作原理!謝謝! – Lucia