gpt4 book ai didi

r - 如何在 for 循环中重命名数据框

转载 作者:行者123 更新时间:2023-12-03 01:11:58 25 4
gpt4 key购买 nike

我对 R 编程非常陌生,但我试图读取一个目录的多个文件,并为每个文件指定一个唯一的名称。我正在阅读使用 R 中的 Dendrochronology 程序库(包 dpIR)和 read.tucson 函数的文件。虽然我使用的是特定的包,但我认为我的问题相当笼统:

在循环中,我想通过将 "t" 与每个单独的文件名连接来创建文件。因此,如果我的目录中有一个名为 "2503" 的文件,我想在 R 中创建一个名为 "t2503" 的数据帧。接下来,我想使用 r.tucson 函数读取每个数据帧的数据。我只是用数据覆盖连接,而不是将读入数据分配给数据帧。有人可以帮我找出我缺少哪一步吗?

这是我尝试使用的代码:

#set to appropriate directory
setwd("C:/work")

#get a list of files in the directory
files <- list.files()
numfiles <- length(files)

for (i in 1:numfiles)
{
name<-paste("t",files[i],sep="")
name<-read.tucson(files[i],header=NULL)
}

最佳答案

我想你自己已经给出了答案:你必须使用?assign

尝试类似的事情:

for (i in 1:5) {
assign(paste0("DF", i), data.frame(A=rnorm(10), B=rnorm(10)))
}

这会循环从 1 到 5 的整数,并创建五个 data.frames“DF1”到“DF5”。对于您的示例,您应该只替换

name<-read.tucson(files[i],header=NULL)

assign(name, read.tucson(files[i],header=NULL))

但请注意,name 是 R 中的基本函数,因此我会使用其他命名约定或跳过第一行:

assign(paste("t",files[i],sep=""), read.tucson(files[i],header=NULL))

我希望这就是您正在寻找的内容。

关于r - 如何在 for 循环中重命名数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940478/

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