2017-06-12 14 views
1

ファイル名のリストがテキスト形式で表示されています。これはフォルダ内の物理ファイルではなくファイル名を意味します。例えば... ....ファイル名のリストを含むフォルダ内のファイル名を一致させるR

ECGVW103899_wholecaseRRiQTi.rr 
    ECGVW104077_wholecaseRRiQTi.rr 
    ECGVW104081_wholecaseRRiQTi.rr 
    ECGVW104121_wholecaseRRiQTi.rr 
    ECGVW104182_wholecaseRRiQTi.rr 
    . 
    . 
    . 

私はファイルのリストを持つフォルダを持っています。これらのファイルには、上記で指摘したリスト内の名前(およびいくつかの追加ファイル)が含まれています。別のフォルダに移動して、フォルダ内の追加ファイルを分割する必要があります。助言がありますか?

+0

リストに含まれていないファイルを確認することは、インデックス作成を使用することで簡単です。ファイルの移動については、[here](http://www.talkstats.com/showthread.php/21889-Move-files-from-one-folder-to-another-using-R)を参照してください。 – RobertMc

答えて

1

このようなことは、あなたが探している結果を与えるかもしれません。

files.to.keep <- c("ECGVW103899_wholecaseRRiQTi.rr", 
        "ECGVW104077_wholecaseRRiQTi.rr", 
        "ECGVW104081_wholecaseRRiQTi.rr", 
        "ECGVW104121_wholecaseRRiQTi.rr", 
        "ECGVW104182_wholecaseRRiQTi.rr") 

source.path <- # Path to file source folder 
destination.path <- # Path to file destination folder 

# Create destination folder if it does not exist 
ifelse(!dir.exists(destination.path), dir.create(destination.path), FALSE) 

# Get list of files in source folder 
filenames <- list.files(source.path) 

# Move files that are not in files.to.keep to the destination folder 
lapply(filenames, function(x) 
        if(!(x %in% files.to.keep)) 
         {file.rename(from = file.path(source.path,x),to = file.path(destination.path,x))}) 
+0

私は空の宛先フォルダを使用して、一致しない追加ファイルを移動します。その場合のifelseラインの目的は何ですか? – DaphFab

+0

また、コードはファイルを移動先フォルダに移動しません。しかし、それは私に[[1]のような出力を与えます。 [1] FALSE [012] [1] FALSE – DaphFab

+0

エラーを防ぐためにチェックするだけです。これにより、コードが破損しないように、存在しない場合は自動的に宛先フォルダが作成されます。 –

関連する問題