我的桌面上有一个名为"project"的文件夹.在这个文件夹里面有多个.txt文件(例如1.txt,2.txt,3.txt等).有没有人知道一个解决方案,使我能够有一个向量,其中向量中的每个元素对应于文件的内容?
例如,如果1.txt包含"你喜欢苹果",2.txt包含"我喜欢梨",而3.txt包含"猫喜欢鱼"......我希望结果是一个长度的矢量3其中每个元素包含.txt文件中的整个文本.基本上(("我喜欢苹果"),("你喜欢梨子"),("猫喜欢鱼")).
我当前的部分解决方案可以按照我想要的方式读取一个文本文件,但是如何为dir中的每个.txt文件执行此操作并相应地存储它?
fileName <- '/Users/myname/Desktop/1.txt'
text <- readChar(fileName, file.info(fileName)$size)
Run Code Online (Sandbox Code Playgroud)
非常感谢!我在黑客马拉松中竞争,需要这个来创建一个tf-idf实现,向量中的每个元素都是一个文档.
尝试:(如果所有文件都在工作目录中)
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"
Run Code Online (Sandbox Code Playgroud)
如果您有不同目录中的文件
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"
Run Code Online (Sandbox Code Playgroud)
基于@RomanLuštrik的评论,你可以这样做:
paste(unname(sapply(files1, readLines)), collapse=", ")
#[1] "You like apples, I like pears, Cats like fish"
Run Code Online (Sandbox Code Playgroud)
或许你需要
paste(paste0("'", unname(sapply(files1, readLines)),"'"), collapse=", ")
#[1] "'You like apples', 'I like pears', 'Cats like fish'"
Run Code Online (Sandbox Code Playgroud)