Вставить содержимое столбца во многих файлах CSV в один список R - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу прочитать содержимое столбца, определенного как ввод моей функции, из разных 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)
}

Ошибка: неожиданное '}' в: "
} "

результат <- среднее (Данные, na.rm = ИСТИНА) Ошибка в среднем (Данные, na.rm = ИСТИНА): объект 'Данные' не найден} Ошибка: неожиданная '}'в "}" </p>

любая идея, как это исправить, это мои первые шаги в R

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Является ли использование 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 )

0 голосов
/ 09 декабря 2018

R не имеет операнда ++, как вы его используете, поэтому он ожидает второго аргумента, который должен следовать за +.Заменить на i=i+1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...