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