2015-04-01 51 views
1

我創建了一個名爲1多個文件:100 +隨機字母到文件:刪除多個測序文件中的R

for (i in 1:100){ 
    file.create(paste0(i , ".txt"), showWarnings=TRUE) 

    # assign random LETTER to files 
    AZ <- sample(LETTERS,1) 
    cat(AZ,file = paste0(i,".txt"),append=TRUE) 

    #rename files, and create new file with append of LETTERS 
    name <- scan(file=paste0(i,".txt"), what="character") 
    file.rename(paste0(i,".txt"), paste0(i, name,".txt")) 

現在,我有很多類似命名的文件「1T,2C,3Y,... ,100A「,我想用file.remove函數刪除所有這些文件(而不是刪除目錄中的其餘文件),我應該如何刪除它們而不一一命名?和所有名爲「exercicio03」的目錄裏面的一切?

PS:我已經嘗試

 file.remove(paste0(i,name,".txt")) 

但僅除去最後一個文件「100A」

回答

1

由於您使用的樣本函數,我想你也只能是100%肯定你只刪除這些文件而不刪除其他文件,如果你(保存)保存了你從這個示例函數中變成的值。 所以你的第一部分應該是:

AZ<-NA 
for (i in 1:100){ 
file.create(paste0(i , ".txt"), showWarnings=TRUE) 

# assign random LETTER to files 

AZ[i] <- sample(LETTERS,1) 
cat(AZ[i],file = paste0(i,".txt"),append=TRUE) 

#rename files, and create new file with append of LETTERS 
name <- scan(file=paste0(i,".txt"), what="character") 
file.rename(paste0(i,".txt"), paste0(i, name,".txt")) 
} 

這樣,您就可以通過此之後將它們全部刪除:

for (i in 1:100){ 
    file.remove(paste0(i,AZ[i],".txt")) 
} 
+0

謝謝!我也在一個名爲「exercicio03」的目錄中,如何使用取消鏈接功能將其刪除? – 2015-04-01 03:31:03

+0

取消鏈接(「exercicio03」,recursive = TRUE)刪除目錄及其中的全部 – jeborsel 2015-04-01 03:35:40

1

您可以輕鬆地名稱只刪除文件,如"1T.txt, 2C.txt, 3Y.txt, ..., 100A.txt"與以下兩行代碼:

remove.files <- list.files(".", pattern="^[0-9]{1,3}[A-Z]{1}\\.txt$") 
do.call(file.remove,list(remove.files)) 

腳本獲得所有文本文件與1-3位數字加在當前目錄中以字母開頭,你創建的米,並刪除它們。

+2

正確的過程我認爲 - 「list.files」雖然有'pattern ='regex參數,這將消除創建'all.files '然後把它切成'remove.files' – thelatemail 2015-04-01 03:03:16