首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用目录/R编程语言读取前10个文件夹

用目录/R编程语言读取前10个文件夹
EN

Stack Overflow用户
提问于 2022-02-20 10:47:26
回答 3查看 49关注 0票数 1

我一直在处理文件夹和子文件夹(文件夹->子文件夹-> file)的数据集,我在读取前10个数据文件夹时遇到了问题。我使用了下面的代码,但它不起作用。请帮帮忙

代码语言:javascript
复制
> for(i in seq_along(my_folders)){
+ my_data[[[i]]] = list.files(path = "~/dataset1", recursive = TRUE)

下面请参阅在子文件夹中读取txt文件的问题:

代码语言:javascript
复制
> for(i in 1:13){
+ current_dir = dirs[i]
+ lines = readLines(mydata[[i]])}

这会导致错误:文件中的错误(con,"r"):无效的'description‘参数

但在循环之外,这是可行的:

代码语言:javascript
复制
> lines <- readLines(my_data[[1]])
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-20 23:46:59

@红杉的答案是有效的,但在R中,你可以利用简洁的功能程序设计,这是lapply()的回答。试试看这个衬里:

代码语言:javascript
复制
library(tidyverse)
library(fs)

d <- dir_ls("path/to/folders", recurse = TRUE) %>% walk(~read_lines(.x))
票数 1
EN

Stack Overflow用户

发布于 2022-02-20 11:46:50

你是怎么想的?

代码语言:javascript
复制
dirs = list.dirs(recursive = FALSE) # reads all directories/folders
mydata = list() # create empty list
for (i in 1:10) { # only takes the first 10 directories
  current_dir = dirs[i]
  mydata[[i]] = list.files(path = file.path("~/dataset1", current_dir), recursive = TRUE)
}

您只需调整文件夹结构即可。

票数 2
EN

Stack Overflow用户

发布于 2022-02-20 12:59:36

使用dir获取文件名的向量,例如,文件夹"f“中的所有.txt文件及其所有子文件夹

代码语言:javascript
复制
files= dir("f",pattern = ".txt", full.names = T,recursive = T)
files
[1] "f/f1/f1_1/f1_1.txt"
[2] "f/f1/f1_2/f1_2.txt"
[3] "f/f2/f2_1/f2_1.txt"
[4] "f/f2/f2_2/f2_2.txt"

然后使用readLines阅读它们

代码语言:javascript
复制
lapply(files, readLines)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71193623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档