R循环在多个csv文件上执行函数

R循环在多个csv文件上执行函数,r,csv,R,Csv,我曾尝试创建一个for循环,它对4个csv文件中的每一个都执行类似的操作,但有更多的文件 dat1<- read.csv("female.csv", header =T) dat2<- read.csv("male.csv", header =T) for (i in 1:2) { message("Female, Male") Temp <- dat[i][(dat[i]$NAME == "Temp"), ] Temp <- Temp[complete.c

我曾尝试创建一个for循环,它对4个csv文件中的每一个都执行类似的操作,但有更多的文件

dat1<- read.csv("female.csv", header =T)
dat2<- read.csv("male.csv", header =T)

for (i in 1:2) {
  message("Female, Male")
  Temp <- dat[i][(dat[i]$NAME == "Temp"), ]
  Temp <- Temp[complete.cases(Temp)]
  print(mean(Temp$MEAN))

dat1就个人而言,我认为最简单的方法是使用plyr软件包:

library(plyr)
myFiles <- c("male.csv", "female.csv")
dat <- ldply(myFiles, read.csv)
dat <- dat[complete.cases(dat), ]
mean(dat$MEAN)
库(plyr)

myFiles在for循环中关闭的
}
在哪里?
dat[1]
dat
的第一个元素<代码>dat1
是另一个对象!读入多个文件的最好方法可能是将它们放在一个列表中。请参阅下面的链接以获取示例:我可以看出您是R的初学者。我在学习R的一开始也遇到了同样的问题。这是正常的,直到你开始“思考的方式”。别担心。你很快就会明白的。谢谢,这很有效,但它似乎把所有的文件都合并了起来。我想为每个文件获得一个单独的输出。这就是为什么我想循环通过它们。
# create a vector of files
myFiles <- c("male.csv", "female.csv")  

# create a function that properly handles ONLY ONE ELEMENT
readAndCalc <- function(x){            # pass in the filename
   tmp <- read.csv(x)                  # read the single file
   tmp <- tmp[complete.cases(tmp), ]   # complete.cases()
   mean(tmp$MEAN)                      # mean
}

x <- "male.csv"
readAndCalc(x)                         # test with ONE file

sapply(myFiles, readAndCalc)           # run with all your files