如何在R中调用for循环中的多个变量?

如何在R中调用for循环中的多个变量?,r,variables,for-loop,R,Variables,For Loop,我有几个.csv文件的数据存储在一个目录中,我需要将它们全部导入到R 导入R时,每个.csv有两列。但是,1001行需要作为每个.csv文件的单独变量存储(它对应于模拟期间存储在此处的预期值;我希望它位于主数据之外) 到目前为止,我有以下代码将.csv文件作为矩阵导入 #Load all .csv in directory into list dataFiles <- list.files(pattern="*.csv") for(i in dataFiles) { #read a

我有几个.csv文件的数据存储在一个目录中,我需要将它们全部导入到R

导入R时,每个.csv有两列。但是,1001行需要作为每个.csv文件的单独变量存储(它对应于模拟期间存储在此处的预期值;我希望它位于主数据之外)

到目前为止,我有以下代码将.csv文件作为矩阵导入

#Load all .csv in directory into list
dataFiles <- list.files(pattern="*.csv")

for(i in dataFiles) {
   #read all of the csv files
   name <- gsub("-",".",i)
   name <- gsub(".csv","",name)  
   i <- paste(".\\",i,sep="")
   assign(name,read.csv(i, header=T))
}
#将目录中的所有.csv加载到列表中

数据文件无法在注释中发布长代码,因此我在这里写:

# Use dialog to select folder
# Full names are required to access files that are not in the current working directory 
file_list <- list.files(path = choose.dir(), pattern = "*.csv", full.names = T)
big_list <- lapply(file_list, function(z){
  df <- read.csv(z)
  scalar <- df[1000,1]
  return(list(df, scalar))
})
big\u list
中的元素遵循
file\u list
的顺序,因此您总是知道数据来自哪个文件

如果使用
data.table::fread()
而不是
read.csv
,则可以随意分配列名、选择要读取的行/列等。对于大型数据文件,这也会大大加快速度


希望这有帮助

.您可以制作一个列表,其中每个元素是另一个列表,由data.frame和标量值组成。使用
lappy
而不是
for
循环将更加方便和“R方式”
big_list[[3]][2]