【问题标题】:Convert .txt files into .CSV files in a directory using a loop使用循环将目录中的 .txt 文件转换为 .CSV 文件
【发布时间】:2020-01-28 15:27:10
【问题描述】:

这里是新鲜的生菜,所以不要笑我的问题:

假设我有一个包含 40 个单独的 .txt 文件的文件夹,我想将它们转换为 .csv 格式。 拥有最终产品:一个包含 40 个单独 .csv 文件的新文件夹。

我已经看到发布了类似的问题及其代码,但是代码确实运行了,但 .csv 文件与原始 .txt 文件完全不同:所有数据都被打乱了。

因为我想保留标题,并且我想读取 .txt 文件中的所有数据/行。我对代码进行了一些外观上的更改,但仍然没有运行并返回警告“文件错误(文件,“rt”):无法打开连接 另外:警告信息: 在文件(文件,“rt”)中: 无法在训练患者 ctrl_S1018263__3S_TNFaCHx_333nM+0-1ugml_none.txt 中打开文件“C:/Users/mli/Desktop/All TNFa controls”:无效参数”

我的代码如下:

directory <- "C:/Users/mli/Desktop/All TNFa controls in the training patients"
ndirectory <- "C:/Users/mli/Desktop/All TNFa controls in the training patients/CSV"
file_name <- list.files(directory, pattern = ".txt")
files.to.read <- paste(directory, file_name, sep="\t") 
files.to.write <- paste(ndirectory, paste0(sub(".txt","", file_name),".csv"), sep=",")
for (i in 1:length(files.to.read)) {
  temp <- (read.csv(files.to.read[i], sep="\t", header = T))
  write.csv(temp, file = files.to.write[i])
}

【问题讨论】:

  • 尝试在directoryndirectoy 的末尾添加“/”。从错误来看,这里似乎缺少“/”:'C:/Users/mli/Desktop/All TNFa controls in the training patients ****missing slash ***** ctrl_S1018263__3S_TNFaCHx_333nM+0-1ugml_none.txt':无效的论点。类似directory &lt;- "C:/Users/mli/Desktop/All TNFa controls in the training patients/"
  • 错误在您使用的粘贴中。在第 4 行和第 5 行设置 sep='/' 而不是 '\t'','。粘贴是对路径名的修改。
  • 为了避免不必要的麻烦,不要在文件夹名或文件名中使用空格或特殊字符。如果必须使用下划线“_”(不是破折号“-”或点“.”)
  • 对不起,我试过了。该代码仍然无法运行,并且报告了相同的错误消息。而且我认为 / 是否有错误消息警告。不知何故,我的复制粘贴错过了它。
  • @ML33M: 也可以看看vroom 包的速度和多功能性stackoverflow.com/questions/3397885/…

标签: r csv preprocessor file-format


【解决方案1】:

当您在第 4 行和第 5 行粘贴带有文件名的路径时,使用 / 以获取字符串中的新路径。 sep 值是函数将多个字符串粘贴在一起时所放置的值。

> paste('hello','world',sep=" ")
[1] "hello world"

> paste('hello','world',sep="_")
[1] "hello_world"

这与您在 read.csv 中需要的 sep 值不同,它定义了 csv 文件的每一列之间的字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多