【问题标题】:Naming an output file using an input file name使用输入文件名命名输出文件
【发布时间】:2016-10-21 12:33:56
【问题描述】:

我对 R 编程相当陌生,如果这个问题已经得到解答,我深表歉意;我确实在寻找答案,但也许我的措辞不对。

我已经导入了一个 TXT 文件,对数据进行了分析和转换,现在希望编写一个 CSV 文件用于导出。但是,由于此脚本旨在运行多个文件,因此我想使用输入 TXT 文件中的文件名作为输出 CSV 文件。

>read.csv("C:\\Users\\Desktop\\filename.txt", header=FALSE)
>...
>...
>write.csv(Newfile, "filename.csv")

例如,我希望能够获取路径的“文件名”部分并(我假设)创建一个字符串变量来提取我要编写的 CSV 文件的名称。

我知道这是初学者级别的东西,但我们将不胜感激。谢谢!

【问题讨论】:

  • 看看?basename。如果您将原始文件名 (basename("C:\Users\Desktop\filename.txt")) 传递给它,它应该返回您需要的内容
  • 如何获取所有文件名?文件夹中的所有内容?或者像filename1.txt, ...这样的东西?一般来说,您可以拆分 path2file <- paste0("C:\\Users\\Desktop\\", filename", ".txt") 并重复使用 filename
  • 请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。

标签: r csv


【解决方案1】:

我们可以将文件名和路径保存在一个变量中,然后操作以生成输出文件名:

myInputFile <- "C:\\Users\\Desktop\\filename.txt"
myOutFile <- paste0(tools::file_path_sans_ext(myInputFile),".csv")

# test
myInputFile
# [1] "C:\\Users\\Desktop\\filename.txt"
myOutFile
# [1] "C:\\Users\\Desktop\\filename.csv"

或者更一般的方法,我使用下面来跟踪我的来龙去脉:

# define folders
folderWD <- "/users/myName/myXproject/"
folderInput <- paste0(folderWD, "data/")
folderOutput <- paste0(folderWD, "output/")

# input output files
fileInput <- paste0(folderInput, "filename.txt")
fileOutput <- paste0(folderOutput, tools::file_path_sans_ext(basename(fileInput)), ".csv")

# test
fileInput
# [1] "/users/myName/myXproject/data/filename.txt"
fileOutput
# [1] "/users/myName/myXproject/output/filename.csv"

#then codez
myInputData <- read.csv(fileInput, header = FALSE)
...
Newfile <- # do some stuff with myInputData
...
write.csv(Newfile, fileOutput)

【讨论】:

  • 如果我想在编写输出文件时只取一部分基本名称并将其包含在输出文件名中怎么办?假设我有这个:“C:\\Users\\file_2016_10.txt”如何在编写输出文件时只提取“2016_10”而不使用扩展名并将其附加到我的文件名中?
  • @EScientist_WH 例如?请输入和预期输出。
  • 所以我想读入上面提到的文件并写一个带有“2016_10”字符串的CSV文件名。例如:>read.csv("C:\\Users...\\file_2016_10.txt") >... >Output_file #分析转换后> >write.csv(Output_file, "Output_file 2016_10")跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多