2014-10-02 2 views
0

데스크톱에 "project"라는 폴더가 있습니다. 이 폴더에는 여러 .txt 파일 (예 : 1.txt, 2.txt, 3.txt 등)이 있습니다. 누구든지 벡터의 각 요소가 파일의 내용에 해당하는 벡터를 가질 수있는 솔루션을 알고 있습니까?여러 개의 .txt 파일을 R 벡터에 개별 요소로 읽어들입니다.

예를 들어 1.txt에 "You like apples"가 포함 된 경우 2.txt에 "I like pears"가 포함되고 3.txt에 "fish like Cats"가 포함됩니다. ..... 결과가 좋겠 으면합니다. 길이가 3 인 벡터. 각 요소에는 .txt 파일의 텍스트 전체가 포함됩니다. 본질적으로 (("나는 사과가 좋아"), ("너는 배를 좋아한다"), ("고양이는 물고기와 같다")).

내 현재 부분 솔루션은 내가 원하는 방식으로 하나의 텍스트 파일을 읽을 수 있지만 어떻게하면 모든 .txt 파일에 대해이 작업을 수행하고 그에 따라 저장할 수 있습니까?

fileName <- '/Users/myname/Desktop/1.txt' 
text <- readChar(fileName, file.info(fileName)$size) 

감사합니다. 나는 hackathon에서 경쟁하고 있으며, tf-idf 구현체를 생성하기 위해 이것을 필요로하고 벡터의 각 요소는 문서가 될 것이다.

답변

5

시도 : 다른 디렉토리에 파일이있는 경우

files <- list.files(pattern="^\\d+\\.txt") 
files 
#[1] "1.txt" "2.txt" "3.txt" 

unname(sapply(files, readLines)) 
#[1] "You like apples" "I like pears" "Cats like fish" 

(모든 파일을 작업 디렉토리에있는 경우) @Roman Luštrik의 의견을 바탕으로

fileDir <- "/home/akrunHome/TestN" 
files <- list.files(fileDir, pattern="^\\d+\\.txt") 
files1 <- paste(fileDir, files, sep="/") 
unname(sapply(files1, readLines)) 
#[1] "You like apples" "I like pears" "Cats like fish" 

, 당신이 할 수 있습니다 :

paste(unname(sapply(files1, readLines)), collapse=", ") 
#[1] "You like apples, I like pears, Cats like fish" 

아니면 당신

필요
paste(paste0("'", unname(sapply(files1, readLines)),"'"), collapse=", ") 
#[1] "'You like apples', 'I like pears', 'Cats like fish'" 
+0

먼저 도움을 제공해 주셔서 감사합니다. 둘째로, 우리는 거의 다 왔지만 필요한 형식은 각 문자열을 쉼표로 구분하는 것입니다. 효과적으로 : # [1] "너 사과 좋아해", "나는 배가 좋아" "고양이는 물고기처럼." 이것은 당신을위한 쉬운 해결인가? – uspowpow

+0

@uspowpow는'paste'와 그 인자'collapse'를 사용하여 문자열을 접습니다. 당신이 제공하는 캐릭터는 모두 문자열 사이에 삽입됩니다. –

관련 문제