从文件列表中,我如何读取以数字开头的 csv 并使用 r 在由下划线分隔的字符串后面添加空白?

From a filelist how do i read the csv that begin with numbers and add before blank to the back of the string seperated by a underscore using r?

例如,我首先像这样提取数据集

#set the directory
setwd("C//Users//Project")


filestoread <- list.files(pattern = "^.*\.csv$")


#list them in the Data
filelist=lapply(filestoread, read.csv)

一切正常。需要注意的一件事是文件被命名为

"40 Jersey Number", "66 Jersey Number", "879 Jersey Number", "565 Jersey Number"

通常球衣号码包含两位数字,我会请求一个脚本来重命名列表中的文件以拉出前两位数字并将它们移到后面。但是我想要一个可以创建

的脚本
"Jersey Number_40","Jersey Number_66", "Jersey_Number_879", and "Jersey_Number_565"

基本上是通过识别它直到第一个空白然后获取该块并将其移到后面但不包括数字后面的白色 space 来获取数字前面的东西下划线。

我相信会是这样开始的

names(filelist) <- ..........

我们可以使用sub在字符串(^)的开头捕获一位或多位数字(\d+)后跟一个space,然后捕获第二个词(\w+)和第三个词,在replacement中,重新排列捕获组的反向引用(\1\2\3

names(filelist) <-  sub("^(\d+) (\w+) (\w+)", "\2 \3_\1", v1)
names(filelist)
#[1] "Jersey Number_40"  "Jersey Number_66"  "Jersey Number_879" "Jersey Number_565"

数据

v1 <- c("40 Jersey Number", "66 Jersey Number", "879 Jersey Number", "565 Jersey Number")