簡體   English   中英

如何在R中的for循環中調用幾個變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM