【问题标题】:Moving specific folders into a new folder in R ????➡???? [duplicate]将特定文件夹移动到 R 中的新文件夹 ??????➡???? [复制]
【发布时间】:2021-05-13 22:22:29
【问题描述】:

这是我的问题:

我收集了数据,它在 145 个文件夹中????

  • 每个代表一个单独的测量值(每个文件夹内有 100 个 csv 文件)

  • 这些文件夹中有 19 个是“Si”测量值,我想将其移动到一个名为“Si”的新文件夹中,以便在以后的工作中排除

  • 我列出了这些文件夹并尝试使用 file.copy 移动它们

  • 我都猜错了。

想法?

旁注:我希望它们被移动,而不是被复制。但我现在简化了它

这是我的代码,后面是一些输出:

path = "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy" # Where the data is stored
current.folder <- path
all.folders = list.files(current.folder, full.names = TRUE)               # Makes a list of all the folders
all.folders.Si = all.folders[grepl("~si",all.folders, ignore.case = T)]   # Checks which lines have "~Si" in them and gives them a "TRUE" value in the standard column
new.Si.folder <- paste(current.folder,"/Si", sep = "")                    # Where I want my files to be copied to
dir.create(new.Si.folder)                                                 # Creates that target folder
file.copy(all.folders.Si, to = new.Si.folder)                             # SHOULD copy the folders to the new directory

输出:

> head(all.folders)
[1] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~4aap"        
[2] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~E.~coli~Gr05"
[3] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~E.coli~Gr06" 
[4] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~K.~pne~A91"  
[5] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~K.~pne~Gr18" 
[6] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~K.pne~A99"  
> head(all.folders.Si)
[1] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201027~K.P~Si"
[2] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201028~K.P~Si"
[3] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201029~K.P~Si"
[4] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201030~K.P~Si"
[5] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201103~K.P~Si"
[6] "C:/Users/anakar/Desktop/HOME OFFICE/Klebsiella/Data for analysis/SpRaw - dummy/AN~20201104~K.P~Si"
> file.copy(all.folders.Si, to = new.Si.folder)
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

【问题讨论】:

标签: r directory


【解决方案1】:
  • list.filesfull.names = TRUErecursive = TRUE 一起使用,以便将所有文件包含在嵌套文件夹中。
  • lis.files 中,您可以为要查找的文件指定pattern。 (此处使用了'~si' 模式)。
  • 要移动文件,您需要使用file.rename 并提供要将文件移动到的位置的完整路径。

试试:

current.folder <- path
all.files = list.files(current.folder, full.names = TRUE, 
                       recursive = TRUE, pattern = '~si') 
dir.create(paste(path, 'si', sep = '/'))
file.rename(all.files, paste(path, 'si', basename(all.files), sep = '/'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多