Для R: Как исключить некоторые файлы данных на основе языка файлов - PullRequest
0 голосов
/ 19 января 2019

Я довольно новичок в R (и в юридической школе, так что это все очень плохо для меня), поэтому извиняюсь, если это плохо сформулировано. У меня есть серия из около 1500 документов, которые я импортирую в R, чтобы классифицировать и проанализировать позже. Первое, что мне нужно сделать, это исключить все документы, написанные на французском языке, которые помечены знаком «FR» в заголовке / doc.info. Мне было любопытно, какой код я мог бы использовать, чтобы исключить это, прежде чем импортировать файлы, чтобы иметь чистый набор данных, прежде чем анализировать что-либо (поскольку это, очевидно, будет вносить беспорядок в процессы, такие как анализ настроений). Любая помощь приветствуется (даже если эта помощь объясняет, как лучше говорить о кодировании). С уважением!

редактировать 1 Я использую код readtext (папка), который вы можете увидеть ниже: Папка <- "C: / [путь]" Доводы <-readtext (папка) </p>

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 голосов
/ 19 января 2019

Вот альтернатива, аналогичная @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
0 голосов
/ 19 января 2019

Функциональность, которую вы ищете, можно найти в функции list.files(). Документация может быть найдена здесь .

Короче говоря, ваш код, скорее всего, будет выглядеть примерно так:

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
}]

Примечание - вы можете напрямую использовать параметр pattern, найденный в `list.files (), но я решил сделать это в два шага на случай, если вы захотите сделать что-то еще с французскими файлами. Это также упрощает работу каждой строки кода ...

... удачи и добро пожаловать в R!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...