繁体   English   中英

在一个列表R中的许多csv文件中插入列的内容

[英]Insert the content of column in many csv files in one list R

我想从不同的csv文件中读取定义为函数输入的列的内容,我使用以下函数

Getmean <- function(directory,pollutant,id=1:332)
{
  i<- 1
  filenames <- sprintf("%0.3d", id)

  Data <- list()

  for (filename in filenames) 
  {


    Data[i]  <- read.csv(file= filename, sep=",", colClasses=c(pollutant))

     i <- i++

  }

  result <- mean(Data ,na.rm = TRUE)
}

错误:“”中出现意外的'}'
}”

结果<-mean(Data,na.rm = TRUE)均值(Data,na.rm = TRUE)中的错误:找不到对象'Data'}错误:“}”中的意外'}'

任何想法如何解决这个问题,这是我在R中的第一步

是否使用data.table::fread选项?

首先,使用list.files()获取要读取的文件列表

fileslist <- list.files( 
  path = "./", 
  pattern = "(^[0-3]\\d\\d|^4[0-3]\\d|^44[0-4]).csv$",  # regex to select 000.csv to 444.csv
  full.names = TRUE )

然后使用fread读取列表,仅保留“污染物”列,使用函数的select参数。

library( data.table )
contents <- lapply( fileslist, fread, select = c( "pollutant" ) )

然后在此列表上执行所需的均值运算...

sapply( contents, mean, na.rm = TRUE )

R在您使用它时没有操作数++ ,因此它正在等待第二个需要跟随+的参数。 替换为i=i+1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM