R 使用循环将.txt文件转换为目录中的.CSV文件

R 使用循环将.txt文件转换为目录中的.CSV文件,r,csv,preprocessor,file-format,R,Csv,Preprocessor,File Format,新鲜的生菜,所以不要嘲笑我的问题: 假设我有一个包含40个.txt文件的文件夹,我想将它们转换为.csv格式。 拥有最终产品:一个包含40个单独.csv文件的新文件夹 我看到过类似的问题和他们的代码,但是代码确实运行了,但是.csv文件与原始的.txt文件完全不同:所有的数据都被打乱了 因为我想保留标题,我想读取.txt文件中的所有数据/行。我对代码做了一些修饰性的更改,但仍然没有运行,并返回了一条警告“文件中有错误(file,“rt”):无法打开连接 此外:警告信息: 在文件中(文件“rt”)

新鲜的生菜,所以不要嘲笑我的问题:

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

我看到过类似的问题和他们的代码,但是代码确实运行了,但是.csv文件与原始的.txt文件完全不同:所有的数据都被打乱了

因为我想保留标题,我想读取.txt文件中的所有数据/行。我对代码做了一些修饰性的更改,但仍然没有运行,并返回了一条警告“文件中有错误(file,“rt”):无法打开连接 此外:警告信息: 在文件中(文件“rt”): 无法打开文件“C:/Users/mli/Desktop/training patients ctrl_S1018263__3S_TNFaCHx_333nM+0-1ugml_none.txt”中的所有TNFa控件:参数无效

我的代码如下:

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])
}

目录在第4行和第5行用文件名粘贴路径时,使用
/
,以字符串形式获取新路径。
sep
值是函数在将多个字符串粘贴在一起时将放置的值

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

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

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

尝试在
目录
ndirectoy
的末尾添加“/”。从错误中可以看出,此处似乎缺少“/”:C:/Users/mli/Desktop/training patients中的所有TNFa控件****缺少斜杠
***
ctrl\u S1018263\u 3S\u TNFaCHx\u 333nM+0-1ugml\u none.txt”:参数无效。类似于
目录的错误出现在您使用的粘贴中。在第4行和第5行设置
sep='/'
而不是
'\t'
','
。粘贴是对路径名的修改。为了避免不必要的麻烦,请不要在文件夹名或文件名中使用空格或特殊字符。如果您担心我已经试过了,请使用下划线“u”(不是破折号“-”或点“.”。代码仍然无法运行,并报告了相同的错误消息。我认为/有错误信息警告。不知怎的,我的复制粘贴错过了它。@ML33M:还可以查看
vroom
包的速度和多功能性