给出一些数据
hello <- c('13.txt','12.txt','14.txt')
我想取数字并转换为数字,即删除.txt
答案 0 :(得分:7)
您需要file_path_sans_ext
包
tools
library(tools)
hello <- c('13.txt','12.txt','14.txt')
file_path_sans_ext(hello)
## [1] "13" "12" "14"
答案 1 :(得分:5)
您可以使用原始帖子中“hello”对象上的函数gsub使用正则表达式执行此操作。
hello <- c('13.txt','12.txt','14.txt')
as.numeric(gsub("([0-9]+).*","\\1",hello))
#[1] 13 12 14
答案 2 :(得分:3)
另一种正则表达式解决方案
hello <- c("13.txt", "12.txt", "14.txt")
as.numeric(regmatches(hello, gregexpr("[0-9]+", hello)))
## [1] 13 12 14
答案 3 :(得分:1)
如果您知道自己的扩展名均为.txt
,那么您可以使用substr()
> hello <- c('13.txt','12.txt','14.txt')
> as.numeric(substr(hello, 1, nchar(hello) - 3))
#[1] 13 12 14