R 将未知变量分配给新变量名

R 将未知变量分配给新变量名,r,environments,R,Environments,我必须加载许多文件并转换它们的数据。每个文件只包含一个data.table,但是这些表有不同的名称 我想在所有文件上运行一个脚本-为此,我必须将未知的data.table分配给一个公共名称。。。说blob 这样做的方法是什么?目前,我最好的猜测是将data.table加载到一个新环境中,然后:assign'blob',getobjectsenvir=newEnv[1],env=newEnv 在可复制的上下文中,这是: newEnv <- new.env() assign('a', 1:10

我必须加载许多文件并转换它们的数据。每个文件只包含一个data.table,但是这些表有不同的名称

我想在所有文件上运行一个脚本-为此,我必须将未知的data.table分配给一个公共名称。。。说blob

这样做的方法是什么?目前,我最好的猜测是将data.table加载到一个新环境中,然后:assign'blob',getobjectsenvir=newEnv[1],env=newEnv

在可复制的上下文中,这是:

newEnv <- new.env()
assign('a', 1:10, envir = newEnv)
assign('blob', get(objects(envir=newEnv)[1], env=newEnv))

有更好的办法吗

R方法是创建单个对象,即数据表的单个列表

以下是一些包含三个步骤的伪代码:

使用list.files创建文件夹中所有文件的列表。 使用lappy和read.csv读取文件并创建数据帧列表。将read.csv替换为read.table或适合您的数据的任何内容。 再次使用lappy,这次使用as.data.table将数据帧转换为数据表。 伪代码:

filenames <- list.files("path/to/files")
dat <- lapply(files, read.csv)
dat <- lapply(dat, as.data.table)

结果应该是一个名为dat的列表,其中包含每个原始文件的数据表。

R方法是创建一个对象,即一个数据表列表

以下是一些包含三个步骤的伪代码:

使用list.files创建文件夹中所有文件的列表。 使用lappy和read.csv读取文件并创建数据帧列表。将read.csv替换为read.table或适合您的数据的任何内容。 再次使用lappy,这次使用as.data.table将数据帧转换为数据表。 伪代码:

filenames <- list.files("path/to/files")
dat <- lapply(files, read.csv)
dat <- lapply(dat, as.data.table)

您的结果应该是一个名为dat的列表,其中包含每个原始文件的数据表。

我假设您使用类似以下的“保存”来保存数据表:

d1 <- data.table(value=1:10)
save(d1, file="data1.rdata")

我假设您使用save保存data.tables,大致如下所示:

d1 <- data.table(value=1:10)
save(d1, file="data1.rdata")

考虑到我的32位/XP系统,5m+行的文件太大,无法作为一个批处理。考虑到我的32位/XP系统,5m+行的文件太大,无法作为一个批处理。+1/已接受-这正是我试图做的。工作完美。非常感谢。+1/接受-这正是我想要做的。工作完美。非常感谢。