首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列名的循环/cbind(字符)

列名的循环/cbind(字符)
EN

Stack Overflow用户
提问于 2013-08-06 13:43:19
回答 1查看 307关注 0票数 1

我目前正在开发一个由60个时间序列组成的数据库。我实际上有两个数据集:每个数据集对应于一个特定的变量(A或B)。请找到下面的例子(即使我的真实数据库包含60个名字和51年)变量A

代码语言:javascript
复制
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:

代码语言:javascript
复制
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 

我希望实现一个循环,为每个名称创建以下矩阵。

ie:代表name1

代码语言:javascript
复制
year var1 var2 
2002   39   56 
2003   37   72 
2004   51   32 
2005   70   33 
2006   41   47 
2007   43   19

首先,我做了以下工作(因为我只对这两个数据集中出现的系列感兴趣)

代码语言:javascript
复制
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)

我得到了年岁:

代码语言:javascript
复制
YEAR=DF.VAR_A[,"year"]

正如预期的那样,我发现:

代码语言:javascript
复制
 DF.VAR_A[,"name1"] 
[1] 39 37 51 70 41 43

现在,我想为每个名称创建一个数据,该名称由年份组成,值对应于变量A,值对应于变量B。

我从名字向量中取下“年份”。

代码语言:javascript
复制
NAMES=names[-c(1)]

然后我试过:

代码语言:javascript
复制
DATA=NULL 
for (i in 1:length(NAMES)){ 
DATA[i]=cbind(YEAR,DF.VAR_A[,i],DF.VAR_B[,i]) 
}

但以下警告如下: 1:在DATAi = cbind(Année,DF.VAR_A,i,DF.VAR_B,i)中:

总之,我想得到3个不同的数据格式(每个名称1),然后能够应用一个循环(我已经编程了)。我想“自动”循环到每一个意甲。我希望一切都清楚..。

有什么想法吗?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-06 13:50:31

在我看来,你只是把事情放在一起。这样做非常简单,每个子集都将是它自己的list元素(但是如果您需要更强大的编程功能,还有很多其他方法可以做到):

代码语言:javascript
复制
lapply( 2:ncol(varA) , function(x) cbind( Year = varA[,1] , A = varA[ , x], B = varB[,x] ) )
[[1]]
     Year  A  B
[1,] 2002 39 56
[2,] 2003 37 72
[3,] 2004 51 32
[4,] 2005 70 33
[5,] 2006 41 47
[6,] 2007 43 19

[[2]]
     Year  A  B
[1,] 2002 56 18
[2,] 2003 31 52
[3,] 2004 58 30
[4,] 2005 59 34
[5,] 2006 43 46
[6,] 2007 31 32

[[3]]
     Year  A  B
[1,] 2002 31 24
[2,] 2003 52 59
[3,] 2004 51 33
[4,] 2005 68 51
[5,] 2006 37 19
[6,] 2007 53 25
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18081957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档