在第一个字符后拆分String

时间:2016-08-02 15:52:54

标签: r strsplit

我在数据框中有一个列,如下所示:

D0.5
A4
C1.3
B2.0

我希望能够拆分列,以便第一个条目(始终是单个字符)与条目的其余部分(总是数字,但根据条目具有不同的长度)分开< / p>

除了第一个条目而不是第五条以及R而不是php之外,我基本上都要做到这一点。

split string after x characters

2 个答案:

答案 0 :(得分:3)

您可以使用substring

x <- c("D0.5", "A4", "C1.3", "B2.0")

substring(x, 1, 1)

[1] "D" "A" "C" "B"

仅获取数字部分:

as.numeric(substring(x, 2, nchar(x)))

[1] 0.5 4.0 1.3 2.0

或使用stringi

as.numeric(stringi::stri_sub(x, 2))

并使用stringr

as.numeric(stringr::str_sub(x, 2))

对于stringistringr2代表起始位置。如果需要,可以包括结束位置,否则默认情况下它是最后一个字符。

答案 1 :(得分:0)

我们可以使用sub

as.numeric(sub("^.(.*)", "\\1", v1))
#[1] 0.5 4.0 1.3 2.0

library(tidyr)
extract_numeric(v1)
#[1] 0.5 4.0 1.3 2.0

数据

v1 <- c("D0.5", "A4", "C1.3", "B2.0")