在第一个字符后拆分字符串

Split String after first character

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

D0.5
A4
C1.3
B2.0

我希望能够拆分列,以便第一个条目(始终为单个字符)与其余条目(始终为数字,但长度因条目而异)分开)

除了在第一个条目之后而不是第 5 个条目之后和在 R 中而不是 php 中,我基本上就是这样做的。

split string after x characters

您可以使用 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代表起始位置。如果需要,您可以包括结束位置,否则默认为最后一个字符。

我们可以使用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")