gpt4 book ai didi

r - 如何使用apply函数将多个数据表读入R?

转载 作者:行者123 更新时间:2023-12-01 22:38:39 24 4
gpt4 key购买 nike

我对 R 比较陌生,并且在使用 apply 函数从目录中读取多个表时遇到问题。我希望该函数执行的操作是使用带有我感兴趣的表路径的向量,并生成一个列表,其中包含由与该文件中的路径相对应的每个数据帧组成的对象。我编写了以下代码:

f<- function(directory){
file.list <<- list.files(directory)
file.paths <<- as.vector(paste(directory, file.list, sep = "/"))
tables <- lapply(X = file.paths, FUN = read.table, header = TRUE,sep = "\t" ))
}

根据我的理解,我正在做的是在我想要的目录中创建文件名列表,创建这些文件的路径,并且(我失败的地方是)循环这些路径并导入表它们对应于整个 file.paths 对象并使用这些表生成一个列表。我收到以下错误:

Error in FUN(X[[i]], ...) : no lines available in input

有人可以提供任何建议吗?

最佳答案

以下是一些选项,具体取决于您想要的输出:

数据框列表

# Load library
library(data.table)

# Get a List of all files named with a key word, say all `.csv` files
filenames <- list.files("C:/your/folder", pattern="*.csv", full.names=TRUE)

# Load data sets
list.DFs <- lapply(filenames,fread)

我假设您的数据文件以 .csv 格式保存。请注意,fread 相当于 read.table,但速度要快得多

将多个数据框绑定(bind)到一个数据框中

# Get a List of all files named with a key word, say all `.csv` files
filenames <- list.files("C:/your/folder", pattern="*.csv", full.names=TRUE)

# Load and bind all data sets
data <- rbindlist(lapply(filenames,fread))

将多个数据框作为不同的对象加载到全局环境

# Get a List of DF in the directory
filenames <- list.files("C:/your/folder", pattern="*.Rda", full.names=TRUE)

# Load data sets
lapply(filenames, load, .GlobalEnv)

关于r - 如何使用apply函数将多个数据表读入R?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com