Преобразование файлов .txt в файлы .CSV в каталоге с помощью цикла - PullRequest
0 голосов
/ 28 января 2020

Fre sh салат здесь, так что не смейтесь над моими вопросами:

Допустим, у меня есть папка, содержащая 40 отдельных файлов .txt, и я хотел бы преобразовать их в формат .csv. Чтобы получить конечный продукт: новая папка с 40 отдельными файлами .csv.

Я видел похожие вопросы и их код, однако этот код работал, но файлы .csv не похожи на оригинальный файл .txt: все данные зашифрованы.

Поскольку я хочу сохранить заголовок и хочу прочитать все данные / строки в файле .txt. Я сделал некоторые изменения в коде cosmeti c, но не запустился и вернул предупреждение «Ошибка в файле (файл,« rt »)»: не удается открыть соединение. Дополнительно: Предупреждение: в файле (файл, «rt») : невозможно открыть файл 'C: / Users / mli / Desktop / Все элементы управления TNFa в обучающихся пациентах 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])
}

1 Ответ

0 голосов
/ 28 января 2020

Когда вы вставляете свой путь с именем вашего файла в строках 4 и 5, используйте /, чтобы получить новый путь в символьной строке. Значение sep - это то, что функция поместит, когда будет вставлять несколько строк.

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

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

Это отличается от значения sep, которое вам нужно в read.csv, которое определяет символ между каждым столбцом из вас CSV-файл.

...