Преобразование текстового корпуса строки символов в вектор символов перед использованием пакета stringi

У меня есть корпус, содержащий два текстовых файла, которые я импортировал как:

temp = list.files(pattern = ".txt")  
mydata = lapply(temp, read.delim, sep ="\t", quote = "")  
mydata

выходным классом был список, но я преобразовал его в символ следующим образом:

class(mydata)  
list  
mydata <- as.character(mydata)

тексты относятся к классу символов:

class(mydata)    
[1] "character"  

но кажется, что это строки символов, как сначала показывает вывод:

[[1]]ï..We.give.the.observer.as.much.time.as.he.wants.to.make.his.response..we.simply.increase.the.number.of.alternative.stimuli.among.which.he.must.

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

ï..this.is.just.a.bunch.of.crab.to.analyse. 
1  I need to understand how this R package works.                                                                                                                                                                                                                                                                                                                                                                        
2  lexical diversity needs to be analysed for two texts for now.                                                                                                                                                                                                                                                                                                                                                           
3  In this document I am typing each sentence on a separate line.                                                                                                                                                                                                                                                                                                                                                         

Мне нужно преобразовать эти тексты как вектор символов для следующего шага анализа, чтобы преобразовать их в ASCII с помощью пакета stringi в R, например:

stri_enc_toascii(mydata) 

--данный пакет только преобразует вектор символов в кодировку ascii. Итак, вопрос:

--Как преобразовать набор строк символов в вектор?

P.S. Я уже рассмотрел все остальные вопросы в StackOverflow, чтобы избежать дублирования вопроса. Спасибо за вашу помощь!


Спасибо, ребята, за вашу помощь! Я просто использовал as.vector для преобразования строки символов в вектор символов:

as.vector(mydata)
is.vector(mydata)
TRUE

Но основная проблема остается: мне нужен вектор символов в качестве входных данных для пакета stringi и функция stri_enc_toascii(mydata) для преобразования моих данных в кодировку ASCII (проверьте здесь, но кодировка по-прежнему показывает неизвестно. Есть ли простой способ преобразовать «неизвестную» кодировку в «ascii»?


person Maryam Nasseri    schedule 26.05.2018    source источник
comment
Отформатируйте свой код соответствующим образом, см. stackoverflow.com/help/formatting.   -  person jay.sf    schedule 26.05.2018
comment
Части вашего вопроса не имеют смысла. Если mydata является результатом вызова lapply, то class(mydata) должен возвращать список, а не символ. Кроме того, read.delim предназначена для чтения таблиц и не подходит для чтения нетабличных текстовых файлов.   -  person Ryan C. Thompson    schedule 26.05.2018
comment
Да, изначально результатом был список, но я изменил его на символ с помощью as.character(). Раньше я импортировал текстовые файлы с «read.delim» и указывал шаблон как .txt, и я мог проделать с ним кучу работы. Пожалуйста, дайте мне знать о любом лучшем методе чтения всего корпуса текстовых файлов, если вы знаете. Обратите внимание, что я пытаюсь использовать пакет qdap в R.   -  person Maryam Nasseri    schedule 26.05.2018


Ответы (1)


Вопрос не очень ясен, но похоже, что вы хотите сгладить вектор строк, которые также преобразуются в ASCII:

library(stringi)

string1 <- "Here's a random phrase."          # English, ASCII
string2 <- ".هنا عبارة عشوائية هناائية"     # Arabic, not ASCII
string3 <- "여기에 임의의 문구가 있습니다."      # Korean, not ASCII

strings <- c(string1, string2, string3)       # as a vector of strings of length 3

ascii_strings <- stri_enc_toascii(strings)    # convert to ASCII

stri_flatten(ascii_strings)           # as a flat, single element string

# other options....
stri_c(ascii_strings, collapse = " ") # as a flat, single element string
Reduce(paste, ascii_strings)          # base::Reduce() / purrr::reduce() with paste() will do the same
stringr::str_c(ascii_strings)         # stringr::str_c() just wraps stringi::str_c()
stringr::str_flatten()                # stringr::str_flatten() just wraps stringi::flatten()
person knapply    schedule 26.05.2018