从R中的指定路径按文件夹分发文件
我有一个csv文件,它指示jpg文件在文件夹中的路径。列表示必须复制jpg的文件夹的名称,行中有指向原始文件夹(必须从中复制)中jpg的路径。通过dput()共享示例 因此,必须将从R中的指定路径按文件夹分发文件,r,dplyr,R,Dplyr,我有一个csv文件,它指示jpg文件在文件夹中的路径。列表示必须复制jpg的文件夹的名称,行中有指向原始文件夹(必须从中复制)中jpg的路径。通过dput()共享示例 因此,必须将x1列中指示的所有jpg文件路径复制到C:\\x1\ 并且必须将x2列中指示的所有jpg文件路径复制到C:\\x2\ 必须将x3列中指示的所有jpg文件路径复制到C:\\x3\ 如何操作,通过R?max 看起来,当您读取csv时,您没有将选项stringsAsFactors=FALSE,这会导致后面的函数出现问题 您可
x1
列中指示的所有jpg文件路径复制到C:\\x1\
并且必须将x2
列中指示的所有jpg文件路径复制到C:\\x2\
必须将x3
列中指示的所有jpg文件路径复制到C:\\x3\
如何操作,通过R?max
看起来,当您读取csv时,您没有将选项stringsAsFactors=FALSE
,这会导致后面的函数出现问题
您可以通过以下方式转换x1
等
mydata=mydata%>%mutate_all(na_if,”)#将空条目设置为na
mydata=lappy(mydata,as.character)#将所有设置为character
mydata=lappy(mydata,na.exclude)#删除NAs,空元素将抛出错误。
file.copy(from=mydata$x1,to=file.path(“C:/x1”,basename(mydata$x1)))}复制第一个“列”。
我从来不会用lappy
做复制之类的事情,因为如果一个人做错了,它会变得一团糟。根据您的数据框架有多大,您也可以尝试这样做。
但我建议只重写最后一行,这也将使您能够更好地控制文件的去向
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。请参见?file.copy
要复制文件,basename
要提取文件的基本名称(不带目录路径),粘贴来连接字符串。
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))