2015-11-05 2 views
0

Я читаю прикрепленный файл .txt, используя приведенный ниже код R. У меня есть 2200 txt-файлов, подобных этому с разными идентификаторами станции. Мне нужно вывести только год для данных о пиковых расходах. Например,Прочтите несколько текстовых файлов

Year  Peak 
1929 4050 
1940 7000 
1958 4050 
... 

Может кто-нибудь помочь мне изменить этот код, чтобы добиться этого.

Мой код R показан ниже.

rm(list=ls(all=TRUE)) 
iPath <- 'C:/Desktop/flow_raw/Region-03/' 
mydata <- read.table("02053200-PeakFlow-uptoWY2015.txt", sep="\t", header=TRUE) 
out <- mydata[c(3,5)] 
+0

Возможный дубликат [Как прочитать все файлы в одном каталоге сразу в R?] (Http://stackoverflow.com/questions/21382880/how-to-read-all-files-in-one-directory- in-r-at-once) – phiver

+0

http://stackoverflow.com/questions/5758084/loop-in-r-loading-files – jogo

ответ

0

Если я правильно понимаю ваш вопрос, вы хотите сразу импортировать 2200 текстовых файлов. По какой-то причине я не вижу вложения, но вы должны иметь возможность читать данные с помощью функции Corpus из пакета tm.

В вашем случае: (путь должен привести к папке, в которой все текстовые файлы живут)

TextCorpus <- Corpus(DirSource("C:/Desktop/flow_raw/Region-03")) 
TextCorpus$content 

Вы должны быть в состоянии подмножества этих документов. Обычно я составляю список содержимого документов, чтобы у вас был список из 2200 элементов, содержащих исходный текст.

+0

Появляется следующее сообщение об ошибке:> install.packages ("tm") также установка зависимость «slam» Пакеты, которые доступны только в исходной форме и могут нуждаться в компиляции C/C++/Fortran: «slam» 'tm' Они не будут установлены – user3408139

1

Я не вижу прикрепленного файла.

Существуют различные варианты выполнения задачи.

library(plyr) #you only need these packages if you follow my first Option 
library(dplyr) 

files <- dir("C:/Desktop/flow_raw/Region-03", 
      full.names = TRUE) 


# OPT. 1: if you need a Data Frame 
df <- lapply(files, function(x) 
     read.table(x, sep = '\t', header = FALSE)[c(3,5)]) %>% 
     plyr::ldply() #the '.id' argument might be useful 

# OPT. 2: if you need a list 
listTxt <- lapply(files, function(x) 
      read.table(x, sep = '\t', header = FALSE)[c(3,5)]) 

NB: Если вам нужна функция быстрого чтения, пожалуйста, посмотрите на

data.table :: FREAD

enter image description here

enter image description here

enter image description here

+0

Когда я пытаюсь установить пакеты «plyr» упомянутый выше в RStudio, появляется следующее сообщение об ошибке. install.packages ("plyr") также устанавливает зависимость «Rcpp» Пакеты, которые доступны только в исходной форме и могут нуждаться в компиляции C/C++/Fortran: 'Rcpp' 'plyr' Они не будут установлены Может ли кто-нибудь помочь мне понять это? Спасибо – user3408139

+0

Сначала вам нужно установить «Rcpp» (и в целом это хорошая идея, потому что Rcpp теперь используется более чем 500 R-пакетами). Если вы не можете установить «Rcpp», пожалуйста, вставьте выходные данные 'sessionInfo()' здесь, я постараюсь вам помочь. – Pasqui

+0

Я попытался установить Rcpp. Но я не могу установить. Вот сообщение, которое я получил. install.packages ("Rcpp") Пакет, который доступен только в исходной форме и может нуждаться в компиляции C/C++/Fortran: 'Rcpp' Они не будут установлены. – user3408139

Смежные вопросы