2014-10-02 145 views
0

我有我的桌面上名爲「項目」的文件夾。該文件夾內有多個.txt文件(例如1.txt,2.txt,3.txt等)。有誰知道一個解決方案,可以讓我有一個向量,向量中的每個元素對應於文件的內容?讀取多個.txt文件轉換爲R向量作爲各個元素

例如,如果1.txt的包含「你喜歡蘋果」,2.txt包含「我喜歡梨」,並3.txt含有「像魚貓」 ......我想結果是一個長度爲3的矢量,其中每個元素包含.txt文件中的全部文本。基本上((「我喜歡蘋果」),(「你喜歡梨」),(「貓喜歡魚」))。

我現在的局部解決方案可以閱讀我想辦法一個文本文件,但我怎麼能在一個目錄做每一個.txt文件,並將其存儲相應的?

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

非常感謝!我正在參加黑客馬拉松比賽,需要這個來創建一個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" 

如果您在不同的目錄中的文件

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" 

基於@RomanLuštrik的意見,你可以這樣做:

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 2014-10-02 06:27:04

+0

@uspowpow使用'paste'及其參數'collapse'摺疊字符串。無論您提供什麼字符都會插入到字符串之間。 – 2014-10-02 08:25:10

相關問題