首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R更改文件名中的数字序列

问使用R更改文件名中的数字序列
EN

Stack Overflow用户
提问于 2014-08-31 23:11:49
回答 3查看 197关注 0票数 0

很抱歉,我在任何地方都找不到这个问题的答案,非常感谢您的帮助。

我有一年中每个小时的.csv文件。文件名的写法如下: hh_dd_mm.csv (例如,2月1日00:00--> 00_01_02.csv)。为了便于对一年中的小时数进行排序,我想将文件名更改为mm_dd_hh.csv

如何在R中将文件名从模式HH_DD_MM更改为MM_DD_HH?

代码语言:javascript
复制
a <- list.files(path = ".", pattern = "HH_DD_MM") 
b<-paste(pattern="MM_DD_HH")
file.rename(a,b)
EN

回答 3

Stack Overflow用户

发布于 2014-08-31 23:56:39

或者你可以这样做:

代码语言:javascript
复制
a <- c("00_01_02.csv",  "00_02_02.csv")
gsub("(\\d{2})\\_(\\d{2})\\_(\\d{2})(.*)", "\\3_\\2_\\1\\4", a)
#[1] "02_01_00.csv" "02_02_00.csv"
票数 1
EN

Stack Overflow用户

发布于 2014-08-31 23:29:07

不确定这是否是最好的解决方案,但似乎有效

代码语言:javascript
复制
a <- c("00_01_02.csv",  "00_02_02.csv")
b <- unname(sapply(a, function(x) {temp <- strsplit(x, "(_|[.])")[[1]] ; paste0(temp[[3]], "_", temp[[2]], "_", temp[[1]], ".", temp[[4]])}))
b
## [1] "02_01_00.csv" "02_02_00.csv"
票数 0
EN

Stack Overflow用户

发布于 2014-09-01 00:04:28

您可以使用chartr创建新的文件名。这里有一个例子..

代码语言:javascript
复制
> write.csv(c(1,1), "12_34_56")
> list.files()
# [1] "12_34_56"
> file.rename("12_34_56", chartr("1256", "5612", "12_34_56"))
# [1] TRUE
> list.files()
# [1] "56_34_12"

在chartr中,只要不改变原始字符串中的字符数,就可以替换字符串的元素。在上面的代码中,我基本上只是用"56"替换了"12",这看起来就是您想要做的。

或者,您可以编写一个简短的字符串交换函数

代码语言:javascript
复制
> strSwap <- function(x) paste(rev(strsplit(x, "[_]")[[1]]), collapse = "_")
> ( files <- c("84_15_45", "59_95_21", "31_51_49",   
               "51_88_27", "21_39_98", "35_27_14") )
# [1] "84_15_45" "59_95_21" "31_51_49" "51_88_27" "21_39_98" "35_27_14"
> sapply(files, strSwap, USE.NAMES = FALSE)
# [1] "45_15_84" "21_95_59" "49_51_31" "27_88_51" "98_39_21" "14_27_35"

您也可以使用substr<-赋值函数来执行此操作

代码语言:javascript
复制
> s1 <- substr(files,1,2)
> substr(files,1,2) <- substr(files,7,8)
> substr(files,7,8) <- s1
> files
# [1] "45_15_84" "21_95_59" "49_51_31" "27_88_51" "98_39_21" "14_27_35"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25593294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档