【问题标题】:Error while trying to print the results in R's Antitrust Package尝试在 R 的反垄断包中打印结果时出错
【发布时间】:2016-06-13 23:07:53
【问题描述】:

我正在使用 R 的 Package Antitrust 来计算自身需求弹性和交叉价格弹性,并打印公司之间合并的汇总结果。使用的模型是由Epstein and Rubinfeld (2007) 发布的PC-AIDS(按比例校准的几乎理想需求系统)。这是一个品牌级别的模拟,公司可以在标准模拟中拥有多个品牌,正如我在 excel 中看到的那样。我的愿望是在两家公司之间的合并中充分打印结果,其中一家拥有多个品牌(合并前)。

不过,我的问题似乎是编程/理解代码输出的问题。我将发布我所做的类似代码:

require(antitrust)

ownerPre<-c("a","a","b","c")

ownerPost<-c("a","a","a","c")

shares<-c(0.30,0.20,0.20,0.30)

knownelast<- -1.5
mktelast  <- -1.0

results<-pcaids(shares,knownelast, mktelast, ownerPre=ownerPre,ownerPost=ownerPost,
               labels=ownerPre,knownElastIndex=1)
resume<-summary(results)

resume

results&lt;-summary(results) 行之后,我的输出窗口中出现以下错误:

Error in `row.names<-.data.frame`(`*tmp*`, value = value) : 
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique value when setting 'row.names': ‘* a’

summary(results) 保存价格变化、产量变化等结果。

也许Antitrust 没有像我见过的其他PC-AIDS 版本那样预先编程,也许我无法从这个包中获得这样的结果——这使得编写这个问题的练习几乎毫无意义。但是,如果这是一个编程问题,在 R 方面更有经验的人可能会提供帮助,我邀请一个有用的答案。

【问题讨论】:

    标签: r simulation economics


    【解决方案1】:

    行名相同时打印 data.frame 对象时出现问题:

    mat <- matrix(1:10, ncol=2)
    mat
         [,1] [,2]
    [1,]    1    6
    [2,]    2    7
    [3,]    3    8
    [4,]    4    9
    [5,]    5   10
    
    rownames(mat) <- rep("a", 5)
    mat
      [,1] [,2]
    a    1    6
    a    2    7
    a    3    8
    a    4    9
    a    5   10
    

    现在让我们把它变成一个data.frame:

    temp <- as.data.frame(mat)
    temp
    

    data.frame(V1 = c("1", "2", "3", "4", "5"), V2 = c(" 6", "7", ) 中的错误: 重复的row.names:a

    您的问题的解决方案是重命名标签,使每个标签都不同:

    ownerPreLab <- c("a.1","a.2","b","c")
    
    results <- pcaids(shares, knownelast, mktelast, ownerPre=ownerPre, ownerPost=ownerPost,
                      labels=ownerPreLab, knownElastIndex=1)
    
    resume<-summary(results)
    
    Merger simulation results under 'PCAIDS' demand:
    
          priceDelta sharesPre sharesPost outputDelta
    * a.1         44        30         29        -2.4
    * a.2         44        20         20        -2.4
    * b           81        20         16       -18.4
      c           11        30         35        16.4
    
        Notes: '*' indicates merging parties' products. Deltas are percent changes.
        Output is based on revenues.
    
    
    Share-Weighted Price Change:    38.55
    Share-Weighted CMCR:    37.58
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      相关资源
      最近更新 更多