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)前缀列表