簡體   English   中英

如何在 R 中使用 for 循環為多個 .csv 文件運行相同的代碼?

[英]How do I run the same code for multiple .csv files with a for loop in R?

我編寫了一個代碼來過濾、分組和排序我的大數據文件。 我有多個文本文件需要分析。 我知道我可以復制代碼並使用新數據運行它,但我想知道是否有一種方法可以將其放入 for 循環中,以便一個一個地打開文本文件並運行並存儲結果。 我使用以下內容加載我的所有文本文件。 在接下來的步驟中,我選擇列並過濾它們以找到所需的值。 但目前它只讀取一個文件。 我想從所有數據文件中獲取結果。

Samples <- Sys.glob("*.csv")
for (filename in Samples) {
try <- read.csv(filename, sep = ",", header = FALSE)
shear <- data.frame(try[,5],try[,8],try[,12])
lane <- shear[which(shear$Load == "LL-1"),]
Ext <- subset(lane, Girder %in% c("Left Ext","Right Ext"))
Max.Ext <- max(Ext$Shear)
}

您可以將要應用於每個文件的所有內容放在一個函數中:

apply_fun <- function(filename) {

  try <- read.csv(filename, sep = ",", header = FALSE)
  shear <- data.frame(try[,5],try[,8],try[,12])
  lane <- shear[which(shear$Load == "LL-1"),]
  Ext <- subset(lane, Girder %in% c("Left Ext","Right Ext"))
  return(max(Ext$Shear, na.rm = TRUE))
}

在這里似乎我們只需要每個文件的一個數字( max ),我們可以使用sapply將函數應用於每個文件。

Samples <- Sys.glob("*.csv")
sapply(Samples, apply_fun)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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