我有一个简单的语法问题:有没有一种方法可以指定在.csv
函数本身中写入csv文件的路径?
我总是执行以下操作:
setwd("C:/Users/user/Desktop")
write.csv(dt, "my_file.csv", row.names = F)
但是,我想跳过setwd()
行并将其直接包含在write.csv()
函数中。我在write.csv
文档文件中找不到路径设置。是否可以仅在write.csv
中执行此操作而无需使用write.table()
或不必下载任何软件包?
我正在每天自动运行的脚本中编写约300 .csv
个文件。使用write.table()
时,循环运行要比使用write.csv()
时慢。我想在write.csv()
函数中包含路径的全部原因是看我是否可以减少执行任何代码所需的时间。
答案 0 :(得分:3)
我通常在开头设置“输出”路径,然后仅使用paste()
创建要保存的完整文件名。
path_out = 'C:\\Users\\user\\Desktop\\'
fileName = paste(path_out, 'my_file.csv',sep = '')
write.csv(dt,fileName)
或所有write.csv()
path_out = 'C:\\Users\\user\\Desktop\\'
write.csv(dt,paste(path_out,'my_file.csv',sep = ''))
答案 1 :(得分:1)
另一种方法可能是围绕write.csv函数构建包装函数,并在包装函数中传递write.csv函数的参数。
write_csv_path <- function(dt,filename,sep,path){
write.csv(dt,paste0(path,filename,sep = sep))
}
示例
write_csv_path(dt = mtcars,filename = "file.csv",sep = "",path = ".\\")
答案 2 :(得分:1)
对此有一个专门的功能:file.path
:
path <- "C:/Users/user/Desktop"
write.csv(dt, file.path(path, "my_file.csv"), row.names=FALSE)
引用?file.path
,其目的是:
以与平台无关的方式从组件构造文件的路径。
它会自动执行一些操作(而paste
不会执行):
答案 3 :(得分:0)
对于我来说,这很好,
mmult.datas
C:/Users/seyma/TP/tp.R/tp.R5 - Copy
df.Bench.csv
df
write.csv(df, file ="C:/Users/seyma/TP/tp.R/tp.R5 - Copy/mmult.datas/df.Bench.csv")
有关更多信息,您可以检查the link