Средство временных рядов в R - PullRequest
0 голосов
/ 15 июля 2011

Я очень плохо знаком с R и только что написал это, чтобы получить среднее значение для ряда временных серий в одном файле:

compiled<-read.table("/Users/Desktop/A/1.txt", header=TRUE)

z<-ncol(compiled)

comp_df<-data.frame(compiled[,2:z])

indmean<- rowMeans(comp_df)

Данные в каждом файле выглядят примерно так:1005 *

Работает нормально, но я надеюсь применить это ко многим файлам одинаковой природы с различным количеством временных рядов в каждом файле.Если бы кто-нибудь мог посоветовать, как я могу улучшить вышесказанное, было бы здорово.Заранее спасибо!

1 Ответ

3 голосов
/ 15 июля 2011

Вы можете описанные выше шаги - свернуть их в функцию, и lapply над вектором, который содержит имена файлов, для которых вы хотите выполнить этот анализ. В зависимости от того, что вам нужно сделать, разделение чтения данных из последующего анализа может иметь или не иметь смысла, чтобы вы могли сохранить данные в своей рабочей среде. Для простоты я собираюсь предположить, что вам не нужны данные после слов.

Общими шагами будут:

1) Создайте вектор ваших файлов для обработки. Что-то вроде:

filesToProcess <- dir(pattern = "yourPatternHere")

2) Преврати свой код в функцию

FUN <- function(dat){   
  compiled<-read.table(dat, header=TRUE)
  z<-ncol(compiled)
  comp_df<-data.frame(compiled[,2:z])
  indmean<- rowMeans(comp_df)
  return(indmean)
}

3) lapply ФУНКЦИЯ к вашему списку файлов и назначьте новую переменную:

out <- lapply(filesToProcess, FUN)

4) Дайте out несколько имен, чтобы вы знали, что к чему:

names(out) <- filesToProcess

Теперь у вас есть именованный список, который содержит rowMeans для всех файлов, перечисленных в filesToProcess.

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