R:命名数据框
R: naming a data frame
我正在尝试读取 200 多个 CSV 文件,每个文件都有多行和多列数字。将每个数据作为单独的数据框进行访问是最有意义的。
理想情况下,我想给出有意义的名字。因此,商店 1、房间 1 的数据框将被命名为 store.1.room.1
和 store.1.room.2
。这将一直到 store.100.room.1
、store.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
我正在尝试读取 200 多个 CSV 文件,每个文件都有多行和多列数字。将每个数据作为单独的数据框进行访问是最有意义的。
理想情况下,我想给出有意义的名字。因此,商店 1、房间 1 的数据框将被命名为 store.1.room.1
和 store.1.room.2
。这将一直到 store.100.room.1
、store.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