批次将文件夹中的内容读入

2023-10-07  本文已影响0人  生信小鹏

使用for循环

使用for循环,依次读入文件夹“input”中的文件,将读入的数据放入一个list

# 创建一个空列表来存储数据块
data_list <- list()

# 指定文件夹路径
folder_path <- "input/"

# 获取文件夹中的文件列表
file_list <- list.files(path = folder_path, full.names = TRUE)

# 遍历文件列表并读入数据
for (file_path in file_list) {
  # 提取文件名(不包括路径和扩展名)
  file_name <- tools::file_path_sans_ext(basename(file_path))
  
  # 读入文件数据(这里假设文件是文本文件)
  data <- read.table(file_path, header = TRUE, sep = "\t")
  
  # 将数据添加到列表中,以文件名作为标识
  data_list[[file_name]] <- data
}

# 打印列表中的数据
print(data_list)

使用lapply 函数

# 指定文件夹路径
folder_path <- "./extracted/"

# 列出文件夹中的文件
file_list <- list.files(path = folder_path, pattern = "\\.gz$", full.names = TRUE)

# 定义一个函数来读取文件夹中的文件
read_gz_file <- function(file_path) {
  data <- data.table::fread(file_path, header = F)
  return(data)
}

# 使用 lapply() 读入文件并放到列表中
file_data_list <- lapply(file_list, read_gz_file)

上一篇 下一篇

猜你喜欢

热点阅读