如何在R中调用for循环中的多个变量?
我有几个.csv文件的数据存储在一个目录中,我需要将它们全部导入到R 导入R时,每个.csv有两列。但是,1001行需要作为每个.csv文件的单独变量存储(它对应于模拟期间存储在此处的预期值;我希望它位于主数据之外) 到目前为止,我有以下代码将.csv文件作为矩阵导入如何在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
#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]