#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 Смотрите Обновленный ответ, чтобы получить только один объединенный файл в конце.