在第一个字符后拆分字符串
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))
对于stringi
和stringr
,2
代表起始位置。如果需要,您可以包括结束位置,否则默认为最后一个字符。
我们可以使用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")
我在数据框中有一列,如下所示:
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))
对于stringi
和stringr
,2
代表起始位置。如果需要,您可以包括结束位置,否则默认为最后一个字符。
我们可以使用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")