我在将函数应用于数据框列表时遇到了一个棘手的问题。最终,我想为大量药物使用数据集绘制单独的时间序列图表。
我的数据集包含 30 种不同的抗生素,其使用率在 5 年内每月收集一次。它有 3 列和 1692 行。
到目前为止,我已经为每个抗生素类别制作了一个单独的数据框列表。(列表名称是drug,drug.class是原始数据帧中药物名称的特征向量)
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
}
}
我之前已经在单个数据帧上测试了我的所有功能,它们按预期工作。
我正在尝试研究如何将测试应用于药物列表中的每个数据框。我相信如果我能得到帮助来解决这个问题,我将能够以同样的方式应用时间序列函数。
提前感谢您提供的任何帮助。