【发布时间】:2014-09-08 22:15:18
【问题描述】:
我在 R 中有一个数据框,其中有一列的值为“s1-112”、“s10-112”、“s3656-112”等。现在我想将值更改为仅“s”之后的部分和“-112”之前是 s 之后的数字。有什么办法吗?
【问题讨论】:
我在 R 中有一个数据框,其中有一列的值为“s1-112”、“s10-112”、“s3656-112”等。现在我想将值更改为仅“s”之后的部分和“-112”之前是 s 之后的数字。有什么办法吗?
【问题讨论】:
你可以在这里使用gsub
x<-c("s1-112", "s10-112", "s3656-112")
gsub("s(.*)-112", "\\1", x)
# [1] "1" "10" "3656"
【讨论】:
或者(使用@MrFlick 的数据)
library(stringr)
str_extract(x, perl('\\d+(?=-)'))
#[1] "1" "10" "3656"
【讨论】: