1

给定一些数据

hello <- c('13.txt','12.txt','14.txt')

我只想取数字并转换为数字,即删除 .txt

4

4 回答 4

7

你想file_path_sans_exttools包里

library(tools)
hello <- c('13.txt','12.txt','14.txt')
file_path_sans_ext(hello)
## [1] "13" "12" "14"
于 2013-03-20T02:00:27.783 回答
5

您可以使用原始帖子中“hello”对象上的函数 gsub 使用正则表达式来执行此操作。

hello <- c('13.txt','12.txt','14.txt')
as.numeric(gsub("([0-9]+).*","\\1",hello))
#[1] 13 12 14
于 2013-03-20T02:11:11.580 回答
3

另一个正则表达式解决方案

hello <- c("13.txt", "12.txt", "14.txt")
as.numeric(regmatches(hello, gregexpr("[0-9]+", hello)))
## [1] 13 12 14
于 2013-03-20T02:31:49.630 回答
1

如果你知道你的扩展都是.txt那么你可以使用substr()

> hello <- c('13.txt','12.txt','14.txt')
> as.numeric(substr(hello, 1, nchar(hello) - 3))
#[1] 13 12 14
于 2013-03-20T04:36:29.803 回答