У меня есть сложная проблема с применением функции к списку фреймов данных. В конечном счете, я хочу построить отдельные диаграммы временных рядов для большого набора данных об употреблении наркотиков.
Мой набор данных включает 30 различных антибиотиков с интенсивностью использования, которые собираются ежемесячно в течение 5 лет. Он имеет 3 столбца и 1692 строки.
До сих пор я составил список отдельных фреймов данных для каждого класса антибиотиков. (Название списка — «лекарство», а «лекарство.класс» — вектор символов названий лекарств из исходного фрейма данных)
drugList <- list()
n<-length(drug.class)
for (i in 1:n){
drugList[[i]] <-AB[Drug==(drug.class[i]),]
}
Например, у меня есть 30 фреймов данных в списке со следующими столбцами:
[[29]]
Drug Usage DateA
1353 Tobramycin 5.06 01-Jan-2006
1354 Tobramycin 4.21 01-Feb-2006
1355 Tobramycin 6.34 01-Mar-2006
.
.
.
Drug Usage DateA
678 Vancomycin 11.62 01-Jan-2006
679 Vancomycin 11.94 01-Feb-2006
680 Vancomycin 14.29 01-Mar-2006
Перед созданием каждого графика выполняется логический тест, чтобы определить, является ли временной ряд автокоррелированным. Фреймы данных в списке имеют очень большую длину. Я написал функцию для выполнения теста следующим образом:
acTest <- function(){
id<-ts(1:length(DateA))
a1<-ts(Usage)
a2<-lag(a1-1)
tg<-ts.union(a1,id,a2)
mg<-lm(a1~a2+bs(id,df=3), data=tg)
a2Pval <- summary(mg)$coefficients[2, 4]
if (a2Pval<=0.05) {
TRUE
} else {
FALSE
}
}
Ранее я тестировал все свои функции на отдельных фреймах данных, и они работают так, как ожидалось.
Я пытаюсь понять, как применить тест к каждому фрейму данных в списке лекарств. Я считаю, что если я получу помощь в этом, я смогу применить функции временных рядов таким же образом.
Заранее благодарим за любую предложенную помощь.