对于R:如何根据文件语言排除某些数据文件

时间:2019-01-18 23:50:40

标签: r

我对R相当陌生(在法学院中,所以这对我来说都是很新的),所以如果措辞不佳,我深表歉意。 我有一系列大约1500个文档,我将这些文档导入到R中以便以后进行分类和分析。我需要做的第一件事是排除所有用法语编写的文档,这些文档的标题/doc.info中带有“ FR”标记。我很好奇我可以在导入文件之前使用什么样的代码来排除该代码,以在分析任何内容之前将其包含一个干净的数据集(因为这样做显然会使诸如情感分析之类的过程变得一团糟)。 感谢任何帮助(即使该帮助说明了如何更好地谈论编码)。 亲切的问候!

编辑1 我正在使用的代码是readtext(folder),您可以在下面看到:     文件夹<-“ C:/ [路径]”     提交<-readtext(文件夹)

submissions_text<-submissions$text

submission_number<- numeric()
submission_person<- factor()
submission_code<- factor()
submission_language<-factor()
submission_location<-factor()

for (submission_name in submissions$doc_id) {
  submission_name<-gsub(".txt","",submission_name)
  number<-as.numeric(strsplit(submission_name, "_|-")[[1]][1])
  submission_number<-c(submission_number,number)
  person<-strsplit(submission_name, "_")[[1]][2]
  submission_person<-c(submission_person, person)
  code<-strsplit(submission_name, "_")[[1]][3]
  submission_code<-c(submission_code, code)
  lang<-strsplit(submission_name, "_")[[1]][4]
  submission_language<-c(submission_language, lang)
  location<-strsplit(submission_name, "_")[[1]][5]
  submission_location<-c(submission_location, location)
}

submissions<-cbind(submissions,submission_number)
submissions<-cbind(submissions,submission_person)
submissions<-cbind(submissions,submission_code)
submissions<-cbind(submissions,submission_language)
submissions<-cbind(submissions,submission_location)


submissions<-submissions[order(submissions$submission_number, decreasing = FALSE),]

这只是我代码的组织方面。我希望在此之前排除所有法国数据(但如果事后再来,我也会对此感到非常满意)。

2 个答案:

答案 0 :(得分:4)

您需要的功能可以在list.files()函数中找到。可以找到文档here

简而言之,您的代码可能最终看起来像这样:

setwd("c:/path/to/your/data/here")
files <- list.files()
non_french_files <- files[!grepl("FR", files)]
lapply(non_french_files, function(x) {
  f <- read.csv(x)
  #do stuff with f
}]

注意-您可以直接利用`list.files()中的pattern参数,但是我选择分两步进行操作,以防您想对法语文件进行其他操作。这也简化了每一行代码的工作...

......祝你好运,欢迎来到R!

答案 1 :(得分:1)

这里与@Chase相似:

#set wd
files<-list.files()[!grepl("FR",list.files())]
lapply(files,function(x) read.csv(x)) #reads all at once, might want to save each