R:命名数据框

R: naming a data frame

我正在尝试读取 200 多个 CSV 文件,每个文件都有多行和多列数字。将每个数据作为单独的数据框进行访问是最有意义的。

理想情况下,我想给出有意义的名字。因此,商店 1、房间 1 的数据框将被命名为 store.1.room.1store.1.room.2。这将一直到 store.100.room.1store.100.room.2

我可以将每个文件读取到指定的数据框中。例如:

store.1.room.1 <- read.csv(filepath,...) 

但是如何使用 For 循环创建动态创建的数据框名称?

例如:

for (i in 1:100){    
  for (j in 1:2){    
    store.i.room.j <- read.csv(filepath...)    
 }    
}    

或者,有没有我应该考虑的另一种方法,而不是将每个 csv 文件作为一个单独的数据框?

谢谢

我不确定我是否在回答您的问题,但您绝不会希望将这些 CSV 文件存储到单独的数据框中。在你的情况下我会做的是:

set <- data.frame()
for (i in 1:100){
    ##calculate filename here
    current.csv <- read.csv(filename)
    current.csv <- cbind(current.csv, index = i)
    set <- rbind(set, current.csv)

另外一列用于识别测量值来自哪些 csv 文件。

编辑:

这对于在 data.frame 的某些向量中应用 tapply 很有用。此外,如果您只想保留一个 csv 的测量值(假设索引为 5 的那个),您可以输入

single.data.frame <- set[set$index == 5, ]

您可以像上面那样使用 read.csv 创建数据框,但将它们存储到列表中。然后为列表中的每个项目(即数据框)命名:

# initialize an empty list
my_list <- list()

for (i in 1:100) {
for (j in 1:2) {
df <- read.csv(filename...)
df_name <- paste("store", i, "room", j, sep="")
my_list[[df_name]] <- df
}
}

# now you can access any data frame you wish by using my_list$store.i.room.j