R 文件列表前缀列表

Posted

技术标签:

【中文标题】R 文件列表前缀列表【英文标题】:R List of the prefix of a files list 【发布时间】:2014-02-05 09:44:39 【问题描述】:

我正在尝试列出目录中文件的前缀列表。我有大约 45 个具有相同前缀的文件,例如:

AH#01, AH#02... AH#45

然后

BH#01, BH#02...

我正在尝试列出 AH、BH、...(它们是 .sp 文件)。

我被这个列表困住了。然后有了这个列表,我想为一个特定的文件名应用一个 R 脚本,为AH,然后是BH,等等。

【问题讨论】:

感谢您的建议。我试过了,结果是 AH#1,AH#2,...BH#1,BH#2...但我只想要 AH,BH,...这很有帮助...此外,做您知道如何将 R 脚本应用于这些前缀的列表。例如,我想将脚本应用于名为“nomfic”的文件,其中“nomfic”是前一个列表的每个前缀(如 AH,然后是 BH,...)提前致谢。 【参考方案1】:

这应该可行:

sub('(.*)#.*','\\1',list.files(your_directory_path))

例子:

sub('(.*)#.*','\\1',c('AB#1','AH#45'))
[1] "AB" "AH"

要将您的脚本应用于结果(尽管我们通常使用文件名),您可以这样做:

nomfic<- sub('(.*)#.*','\\1',list.files(your_directory_path))
lapply(nonfic, function(x)your_script)

【讨论】:

【参考方案2】:

我可能误解了你的问题,但这是我的建议:

prefix_letters <- c("AH", "BH")
prefix_numbers <- gsub(" ", "0", format(1:45, digits=2))
m <- outer(prefix_letters, prefix_numbers, function(x, y) paste(x, y, sep="#"))
l <- data.frame(t(m))
names(l) <- prefix_letters
head(l)

     AH    BH
1 AH#01 BH#01
2 AH#02 BH#02
3 AH#03 BH#03
4 AH#04 BH#04
5 AH#05 BH#05
6 AH#06 BH#06

【讨论】:

【参考方案3】:

您可以使用sub函数将字符串中不相关的部分替换为空字符串:

vec <- c("AH#01", "AH#02", "AH#45", "BH#01", "BH#02")

sub("#.*" , "", vec)
# [1] "AH" "AH" "AH" "BH" "BH"

【讨论】:

以上是关于R 文件列表前缀列表的主要内容,如果未能解决你的问题,请参考以下文章

20180403CCNA:(prefix-list)前缀列表

如何为格式列表输出添加前缀?

python 用于为具有上次修改时间的文件列表添加前缀的Python代码段

prefix-list 前缀列表 的说明和实验

测试列表以查看它们是另一个列表的前缀还是后缀

加密货币版本字节列表(地址前缀)