首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在高温超导堆中创建层次数据结构和节点

在高温超导堆中创建层次数据结构和节点
EN

Stack Overflow用户
提问于 2014-06-12 18:32:40
回答 1查看 2.8K关注 0票数 6

我试图使用R中的HTS包创建节点结构,关于节点的文档很稀疏,因此要对节点结构进行适当的编码是很困难的,并且要添加一个添加的层,我正在尝试创建两个层次结构,我们有以下两个层次结构:

(等级1-地理:美国特拉华州及其各县为例)

代码语言:javascript
复制
=> 10000
    => 10001 
    => 10003          
    => 10005
    => 10999

(等级2-工业:简化)

代码语言:javascript
复制
=> 10
     => 11
     => 12 
     => 21 
     => 22 
     => 31
     ...
     => 99

编辑2-修正的层次结构和进一步的澄清

所以每个时刻表都有一个地理代码和一个行业代码。地理代码遵循一个层次结构,行业代码遵循另一个层次(如上文所示)。

我试图弄清楚如何指定“节点”参数来表示两个层次结构的关系(文档示例只显示一个层次结构)。

当两个层次结构相互作用时,我们会得到额外的级别。让我们简化一下,假设只有两个行业,11和12。由(10001,11)和(10001,12)确定的时间序列必须加起来为(10001,10);还有(10001,11).(10999,11)必须加到(10000,11)等等,等等,这些都是简化的层次结构--在实际数据中有更多的层次。

问题是,对于两个层次结构,“节点”参数看起来如何?希望这能有所帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-13 05:17:22

您的符号(这可能不是您的选择)正在使这非常混乱。似乎相同的数字序列可以指一个县或一个行业。

但是,基本思想非常清楚:您有两个层次结构,并且希望考虑这两种类型的聚合。这里有一个使用我自己的表示法来使它更清晰的例子。

假设有两个州分别有四个县和五个县,两个工业分别有三个和两个子产业。因此,有9x5系列在最细分的层次(分行业x县组合)。我将给A州和B州以及A1、A2、A3、A4和B1、B2、B3、B4、B5等州打电话。我会把X和Y分别命名为分行业Xa,Xb,Xc和Ya,Yb .假设矩阵y中有最底层的系列(最细分的级别),每个序列有一列,列按以下顺序排列:

代码语言:javascript
复制
 County A1, industry Xa
 County A1, industry Xb
 County A1, industry Xc
 County A1, industry Ya
 County A1, industry Yb
 County A2, industry Xa
 County A2, industry Xb
 County A2, industry Xc
 County A2, industry Ya
 County A2, industry Yb
...
 County B5, industry Xa
 County B5, industry Xb
 County B5, industry Xc
 County B5, industry Ya
 County B5, industry Yb

因此,我们有一个可重复的例子,我将随机创建y

代码语言:javascript
复制
y <- ts(matrix(rnorm(900),ncol=45,nrow=20))

然后,我们可以为这个矩阵的列构造如下的标签:

代码语言:javascript
复制
blnames <- paste(c(rep("A",20),rep("B",25)), # State
             rep(1:9,each=5), # County
             rep(c("X","X","X","Y","Y"),9), # Industry
             rep(c("a","b","c","a","b"),9), # Sub-industry
             sep="")
colnames(y) <- blnames

例如,矩阵中的第一个系列的名称为"A1Xa",意思是状态A、县1、行业X、子行业a。

然后,我们可以轻松地创建分组时间序列对象

代码语言:javascript
复制
gy <- gts(y, characters=list(c(1,1),c(1,1)))

characters参数表示存在两个层次结构(列表中的两个元素),第一个层次结构由前两个字符指定,第二个层次结构由第二个字符指定。

gts包v4.3中的帮助文件中给出了一个稍微复杂但类似的例子(每个标签都包含多个字符)。

可以在不使用列标签的情况下指定分组结构。然后,您必须指定组矩阵,它定义了哪些聚合是感兴趣的。在上面的例子中,组矩阵是由

代码语言:javascript
复制
gps <- rbind(
  c(rep(1,20),rep(2,25)), # State
  rep(1:9,each=5), # County
  rep(c(1,1,1,2,2),9), # Industry
  rep(1:5, 9), # Sub-industry
  c(rep(c(1,1,1,2,2),4),rep(c(3,3,3,4,4),5)), # State x industry
  c(rep(1:5, 4),rep(6:10, 5)), # State x Sub-industry
  rep(1:18, rep(c(3,2),9)) # County x industry
)

然后

代码语言:javascript
复制
gy <- gts(y, groups=gps)

characters参数一起使用列名方法要容易得多,因为构造所有这些跨产品行可能会引起混淆。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24191537

复制
相关文章

相似问题

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