我目前正在研究由 60 个时间序列组成的数据库。我实际上有两个数据集:每个都对应一个特定的变量(A 或 B)。请在下面找到一个示例(即使我的真实数据库包含 60 个姓名和 51 年)变量 A
year name1 name2 name3
2002 39 56 31
2003 37 31 52
2004 51 58 51
2005 70 59 68
2006 41 43 37
2007 43 31 53
变量 B:
year name1 name2 name3
2002 56 18 24
2003 72 52 59
2004 32 30 33
2005 33 34 51
2006 47 46 19
2007 19 32 25
我想实现一个循环,为每个名称创建以下矩阵。
即:对于name1
year var1 var2
2002 39 56
2003 37 72
2004 51 32
2005 70 33
2006 41 47
2007 43 19
起初,我做了以下事情(因为我只对两个数据集中出现的系列感兴趣)
names=as.matrix(intersect(colnames(df.var_A),colnames(df.var_B)))
DF.VAR_A=subset(df.var_A,select=noms)
DF.VAR_B=subset(df.var_B,select=noms)
然后我想得到每个名字对应的系列(A和B)
我得到了岁月:
YEAR=DF.VAR_A[,"year"]
正如预期的那样,我发现:
DF.VAR_A[,"name1"]
[1] 39 37 51 70 41 43
现在我想为每个名称创建一个数据框,由年份、对应于变量 A 的值和对应于变量 B 的值组成。
我从名称向量中去掉“YEAR”。
NAMES=names[-c(1)]
然后我试过了:
DATA=NULL
for (i in 1:length(NAMES)){
DATA[i]=cbind(YEAR,DF.VAR_A[,i],DF.VAR_B[,i])
}
但是会出现以下警告: 1: In DATA[i] = cbind(Année, DF.VAR_A[, i], DF.VAR_B[, i]) : le nombre d'objets à remplacer n'est pas multiple de la更换尾巴
总而言之,我想获得 3 个不同的数据帧(每个名称 1 个),然后能够应用一个循环(我已经编程过)。我想将循环“自动化”到每个系列。我希望它很清楚...
任何的想法?
非常感谢。