首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按文件夹从R中指定路径分配的文件

按文件夹从R中指定路径分配的文件
EN

Stack Overflow用户
提问于 2019-10-31 10:42:08
回答 1查看 39关注 0票数 0

我有csv文件,它指示指向它们文件夹中的jpg文件的路径。列指示必须在其中复制jpg的文件夹的名称,在行中,它们的原始文件夹中有指向jpg的路径(必须从这些路径中复制)。通过dput()共享示例

代码语言:javascript
复制
    mydata=structure(list(x1 = structure(c(2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 1L, 1L, 1L), 
    .Label = c("", "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\17992279.png", "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44245909_10_173_201907311705.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44253326_03_61_201907311507.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44249755_10_191_201907311444.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44253009_10_935_201907311358.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44254483_01_241_201907311457.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44537611_10_71_201908281506.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44548452_10_973_201908291551.jpg"), 

    class = "factor"), x2 = structure(c(2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 1L, 1L, 1L), 
    .Label = c("", "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44243943_10_916_201907311338.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44245909_10_173_201907311705.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44299011_10_52_201908281735.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44305733_10_845_201908261634.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44249755_10_191_201907311444.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44254483_01_241_201907311457.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44537550_10_155_201908310857.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\DKRBP18729589_08_881_201907311205.jpg"), 

    class = "factor"), x3 = structure(1:11, .Label = c("C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44243943_10_916_201907311338.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44245909_10_173_201907311705.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44265269_10_52_201908280944.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44299011_10_52_201908281735.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44305733_10_845_201908261634.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCI44540448_10_973_201908291524.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44249755_10_191_201907311444.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44254483_01_241_201907311457.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44537550_10_155_201908310857.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\CCSRBP44537577_10_890_201908271624.jpg", 
    "C:\\Users\\OCR\\Downloads\\OCR pass 2\\input\\DKRBP18729589_08_881_201907311205.jpg"), 
    class = "factor")), .Names = c("x1", "x2", "x3"), class = "data.frame", row.names = c(NA, 
    -11L))

因此,必须将x1列中指示的所有jpg文件路径复制到C:\\X1\,而在x2列中指示的所有jpg文件路径必须复制到C:\\X2\

必须将x3列中指示的所有jpg文件路径复制到C:\\X3\

怎么做,通过R?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 11:25:06

马克斯

看起来,当您在csv中阅读时,您没有将选项stringsAsFactors=FALSE放入其中,这会导致函数出现问题。

可以通过以下方式转换x1

代码语言:javascript
复制
mydata=mydata %>% mutate_all(na_if,"") #sets the empty entries to NA
mydata=lapply(mydata, as.character) #sets all to character
mydata=lapply(mydata, na.exclude) #removes the NAs, empty elements would throw errors.

file.copy(from=mydata$x1,to=file.path("C:/X1",basename(mydata$x1)))}) #copies for the first "column".

我从不使用lapply进行复制,因为如果一个人做错了,就会变得很混乱。根据数据帧的大小,您也可以尝试这样做。但我建议只重写最后一行,这也会让您更好地控制文件的去向。

代码语言:javascript
复制
file.copy(from=mydata$x2,to=file.path("C:/X2",basename(mydata$x2)))})
file.copy(from=mydata$x3,to=file.path("C:/X3",basename(mydata$x3)))})

注意:在R中,使用/作为文件路径中的分隔符要方便得多,这也适用于windows。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58641588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档