使用循环将目录中的 .txt 文件转换为 .CSV 文件
Convert .txt files into .CSV files in a directory using a loop
这里有新鲜的生菜,别笑我的问题:
假设我有一个包含 40 个单独的 .txt 文件的文件夹,我想将它们转换为 .csv 格式。
要获得最终产品:一个包含 40 个单独的 .csv 文件的新文件夹。
我看到过类似的问题和他们的代码,但是代码确实 运行 但是 .csv 文件与原始的 .txt 文件完全不同:所有数据都被打乱了。
因为我想保留header,而且我想读取.txt文件中的所有data/rows。我对代码进行了一些外观更改,但仍然没有 运行 并返回警告 "Error in file(file, "rt") :无法打开连接
另外: 警告信息:
在文件(文件,"rt")中:
无法打开文件 'C:/Users/mli/Desktop/All TNFa controls in the training patients ctrl_S1018263__3S_TNFaCHx_333nM+0-1ugml_none.txt':参数无效
我的代码如下:
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 文件每列之间的字符。
这里有新鲜的生菜,别笑我的问题:
假设我有一个包含 40 个单独的 .txt 文件的文件夹,我想将它们转换为 .csv 格式。 要获得最终产品:一个包含 40 个单独的 .csv 文件的新文件夹。
我看到过类似的问题和他们的代码,但是代码确实 运行 但是 .csv 文件与原始的 .txt 文件完全不同:所有数据都被打乱了。
因为我想保留header,而且我想读取.txt文件中的所有data/rows。我对代码进行了一些外观更改,但仍然没有 运行 并返回警告 "Error in file(file, "rt") :无法打开连接 另外: 警告信息: 在文件(文件,"rt")中: 无法打开文件 'C:/Users/mli/Desktop/All TNFa controls in the training patients ctrl_S1018263__3S_TNFaCHx_333nM+0-1ugml_none.txt':参数无效
我的代码如下:
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 文件每列之间的字符。