我在数据框中有一个列,如下所示:
D0.5
A4
C1.3
B2.0
我希望能够拆分列,以便第一个条目(始终是单个字符)与条目的其余部分(总是数字,但根据条目具有不同的长度)分开< / p>
除了第一个条目而不是第五条以及R而不是php之外,我基本上都要做到这一点。
答案 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))
对于stringi
和stringr
,2
代表起始位置。如果需要,可以包括结束位置,否则默认情况下它是最后一个字符。
答案 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")