在write.csv函数中指定路径

时间:2018-10-31 17:42:16

标签: r

我有一个简单的语法问题:有没有一种方法可以指定在.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()函数中包含路径的全部原因是看我是否可以减少执行任何代码所需的时间。

4 个答案:

答案 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)

对于我来说,这很好,

  1. 创建文件夹-> mmult.datas
  2. 复制其目录-> C:/Users/seyma/TP/tp.R/tp.R5 - Copy
  3. 提供您的.csv名称-> df.Bench.csv
  4. 别忘了写数据。frame-> df
  5. write.csv(df, file ="C:/Users/seyma/TP/tp.R/tp.R5 - Copy/mmult.datas/df.Bench.csv")

有关更多信息,您可以检查the link