我正在尝试将文件从一个文件夹移动到另一个文件夹。我有一个名为“data”的数据框,其中包含“from”位置、“to”位置和文件名“myfile”。
library(foreign)
movefile <- function(from, to, myfile){
readfile <- paste(from, myfile, sep = "/")
temp <- read.dta(readfile)
copyto <- paste(to, myfile, sep = "/")
write.dta(temp, copyto)
}
当我使用以下代码行调用该函数时:
movefile(data$from, data$to, data$myfile)
它只复制第一个文件。当我尝试通过在函数中打印各种术语来诊断问题时(例如添加 print(copyto) 作为函数的最后一行),它会为 data 中列出的每个文件打印,表明该函数正在为中的每一行运行数据,但它实际上不会复制第一个文件以外的文件。我该如何纠正?
最佳答案
除非你真的需要将文件作为 data.frame
读入内存。使用 read.dta
,我建议使用 file.copy
,这将使用计算机文件系统复制文件。
original.files <- do.call('file.path', data[c('from','myfile')])
new.files <- do.call('file.path', data[c('to','myfile')])
# overwrite will overwrite, so make sure you mean to do this
file.copy(from = original.files, to = new.files, overwrite = TRUE)
关于r - 在 R 中的函数中保存 Stata 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689472/