Извлечение определенных строк из каждого текстового файла и сохранение в одном текстовом файле

#r #extract #rows

#r #извлечь #строки

Вопрос:

    ListOfFileNames= list.files(path = "D:/in/",
                       pattern = '*.txt',recursive = T)
   options(stringsAsFactors = F)
   setwd("D:/in/")
   outFile <- file("output.txt", "w")
   for (i in ListOfFileNames){
     x = read.delim(ListOfFileNames[i], skip = 29, nrows= 1)
     x = as.character(x)
    writeLines(x, paste('D:/out/out.csv',sep = ","))

   }
 

введите описание ссылки здесьЭто текстовые файлы, которые у меня есть.

Я хотел бы извлечь строки с номерами 30 и 63 из каждого текстового файла и сохранить их в один текстовый файл. Как я могу решить эту проблему в R? Это коды, которые я пытаюсь извлечь из строки с номером 30 и сохранить ее в одном CSV-файле. Но это не работает. Не могли бы вы, пожалуйста, помочь?

Спасибо

Комментарии:

1. Поделитесь двумя файлами и покажите нам код, который вы уже пробовали. Если это конфиденциально, измените его в соответствии с вашими потребностями, иначе никто здесь не сможет вам помочь.

2. хорошо, я загружу два файла.

3. Вам нужно это право «C2,2020-03-13,10:00:00,136.99» и «С2,2020-03-14,19:00:00,133.14». Имя файла 03_19_C2.txt

4. да, правильно. такое же количество строк из других текстовых файлов.

Ответ №1:

Вы можете попробовать :

 ListOfFileNames= list.files(path = "D:/in/",
                       pattern = '*.txt',recursive = TRUE, full.names = TRUE)

result <- do.call(rbind, lapply(ListOfFileNames, function(x) 
                  read.csv(x)[c(30, 63), ]))

write.csv(result, 'D:/out/out.csv', row.names = FALSE)
 

Комментарии:

1. Спасибо y0u, но это дает мне много файлов. Я хочу получить только один файл.

2. @KayKhaingKyaw Смотрите Обновленный ответ, чтобы получить только один объединенный файл в конце.