如何在R中使用for循环为多个.csv文件运行相同的代码?

如何在R中使用for循环为多个.csv文件运行相同的代码?,r,R,我已经编写了一个代码来过滤、分组和排序我的大型数据文件。我要分析多个文本文件。我知道我可以复制代码并使用新数据运行它,但我想知道是否有一种方法可以将其放入for循环中,从而逐个打开文本文件并运行和存储结果。我使用以下命令加载所有文本文件。在接下来的步骤中,我选择列并过滤它们以找到所需的值。但目前它只读取一个文件。我想从所有数据文件中获取结果 Samples <- Sys.glob("*.csv") for (filename in Samples) { try <- read.csv

我已经编写了一个代码来过滤、分组和排序我的大型数据文件。我要分析多个文本文件。我知道我可以复制代码并使用新数据运行它,但我想知道是否有一种方法可以将其放入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)
}

Samples您可以将要应用于每个文件的所有内容放入函数中:

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))
}

使用
lappy
。从
alldat开始,我刚刚用我的部分代码更新了这个问题以澄清。我的目标是运行多个步骤从数据文件中获取特定值。我想将其添加到for循环中,这样我就不必分别为每个数据文件运行代码。是否确实要
header=FALSE
?我想运行的完整函数将生成两个表,其中两行和四列数据的最大值files@MaralDorri那样的话将
sapply
更改为
lapply
Samples <- Sys.glob("*.csv")
sapply(Samples, apply_fun)