r - 获取文件名列表中的最大值
问题描述
我有一个带有总标题的文件名列表
a_file_name_1
a_file_name_34
a_file_name_452
new_data_2018.csv
我想重命名new_data_2018.csv
文件,使其数字结尾比文件夹中最大的预先存在的文件大一。
到目前为止我有
#list files in directory
list_files_names <- list.files(directory_2018)
#capture largest suffix
largest_value <-
new_largest_value <- largest_value + 1
# rename file
file.rename("new_data_2018.csv", paste0('a_file_name_', new_largest_value)
我的问题是如何以返回最大后缀的方式收集现有文件名。我想它可能与以下正则表达式可能有用的正则表达式有关[0-9]*$
。
解决方案
使用 tidyr:
list_file_names <- list.files(directory_2018)
new_largest_value <- max(extract_numeric(list_file_names))+1
注意:这取决于文件名中没有不需要的数字。例子:
extract_numeric('file_2A3B4_name_222.csv')
将返回:234222
编辑 - 如果您在现有文件名中有一致的年份,这可能有效:
list_file_names <- list.files(directory_2018)
file_name_numbers <- extract_numeric(list_file_names)
values_no_year <- as.numeric(gsub(pattern = '2018', replacement='', x = file_name_numbers))
new_largest_value <- max(values_no_year)+1
注意:当您的文件编号包含 2018 时,这可能会遇到问题。
推荐阅读
- swift - 尝试为 UISegmentedControl 中的每个段设置不同的文本颜色
- arrays - 带空格的字符串操作
- c# - Jaeger 错误 未找到合适的发件人。使用 NoopSender
- java - 在 Android 中使用 POST 请求发送数据时出错
- ruby - 在“浏览”中:为 DNSSD::Service:Class 调用私有方法“新”(NoMethodError)
- c# - 添加迁移:无法创建 AppContext 类型的对象
- asp.net-mvc - 如何限制客户不转售我们的 API 服务?
- aws-media-convert - 用于创建 CMAF 仅音频输出的 AWS MediaConvert 作业
- javascript - 如果使用 JS 设置引导轮播,则引导轮播不起作用
- flutter - 如果在视图模型模式中显示进度指示器可以吗?(颤振问题)