在R中更改数据帧的列

在R中更改数据帧的列,r,dataframe,R,Dataframe,我在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" xOr(使用@MrFlick的数据) 非常感谢@MrFlick!!它起作用了 library(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"
xOr(使用@MrFlick的数据)


非常感谢@MrFlick!!它起作用了
library(stringr)
str_extract(x, perl('\\d+(?=-)'))
#[1] "1"    "10"   "3656"