【问题标题】:Read multiple text files读取多个文本文件
【发布时间】:2015-11-05 19:36:40
【问题描述】:

我正在使用下面的 R 代码阅读附加的 .txt 文件。我有 2200 个这样的具有不同站 ID 的 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)] 

【问题讨论】:

标签: r text


【解决方案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)])

注意:如果您需要快速阅读功能,请查看

data.table::fread

【讨论】:

  • 当我尝试在 RStudio 中安装上述“plyr”包时,我收到以下错误消息。 install.packages("plyr") 还安装依赖 'Rcpp' 包,这些包仅以源代码形式提供,可能需要编译 C/C++/Fortran: 'Rcpp' 'plyr' 这些将不会安装 有人可以帮我吗解决这个问题?谢谢
  • 您需要先安装“Rcpp”(一般来说这是一个好主意,因为现在超过 500 个 R 包都在使用 Rcpp)。如果您无法安装“Rcpp”,请将sessionInfo()的输出粘贴到此处,我会尽力帮助您。
  • 我尝试安装 Rcpp。但我无法安装。这是我收到的信息。 install.packages("Rcpp") 只提供源代码的包,可能需要编译 C/C++/Fortran: ‘Rcpp’ 这些不会被安装。
  • 这就是为什么我要你把你的sessionInfo()贴在这里:)
  • 注意:不同的系统配置需要不同的安装步骤
【解决方案2】:

如果我正确理解您的问题,您希望一次导入 2200 个文本文件。由于某种原因,我看不到附件,但您应该能够使用 tm 包中的 Corpus 函数读取数据。

在您的情况下:(路径应指向所有文本文件所在的文件夹)

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

您应该能够对这些文档进行子集化。我通常会列出文档的内容,这样您就会有一个包含原始文本的 2200 个元素的列表。

【讨论】:

  • 我收到以下错误消息,> install.packages("tm") 还安装依赖 'slam' 包,这些包仅以源代码形式提供,可能需要编译 C/C++/Fortran : 'slam' 'tm' 这些不会被安装
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2012-10-06
  • 2010-12-13
  • 2015-08-11
  • 1970-01-01
相关资源
最近更新 更多