[英]How to create several variables in a for loop increasing each one by 3 months in R?
[英]How to call several variables in a for loop in R?
我在目錄中存儲了幾個.csv數據文件,我需要將所有這些文件導入R。
每個.csv文件在導入到R中時都有兩列。但是,第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))
}
這將產生幾個命名約定為“ sim_data_L_mu”的矩陣,其中L和mu是來自仿真的參數。 如何從每個矩陣中刪除第1001行(第一列中有一個數字,第二列為空)並將其存儲為名為“ sim_data_L_mu_EV”的變量? 我的主要問題是我不知道如何在我的for循環中調用所有新創建的矩陣。
無法在評論中發布長代碼,因此請在此處編寫:
# 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_list[[3]][2]
big_list
的元素遵循file_list
的順序,因此您始終知道數據來自哪個文件。
如果使用data.table::fread()
而不是read.csv
,則可以read.csv
分配列名,選擇要讀取的行/列等。對於大型數據文件,這也要快得多。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.