企业信息

    北京天演融智软件有限公司

  • 8
  • 公司认证: 营业执照已认证
  • 企业性质:私营企业
    成立时间:2006
  • 公司地址: 北京市 海淀区 北京市海淀区上地东路35号院1号楼3层1-312-318、1-312-319
  • 姓名: 王经理
  • 认证: 手机未认证 身份证未认证 微信已绑定

    GAMS通用代数建模软件之GAMS Transfer R

  • 所属行业:IT 软件
  • 发布日期:2024-12-10
  • 阅读量:67
  • 价格:面议
  • 产品规格:不限
  • 产品数量:不限
  • 包装说明:不限
  • 发货地址:北京海淀  
  • 关键词:gams,一般均衡模型,统计分析,数据分析

    GAMS通用代数建模软件之GAMS Transfer R详细内容

    2024.11.25gams知乎

    GAMS Transfer R于2022年8月**与GAMS主要版本一起发布,并已包含在所有后续的GAMS版本中。较近,我们将GAMS Transfer R开源并发布在CRAN上。在这篇文章中,将简要概述GAMS Transfer R,它是什么,它旨在帮助谁,以及如何使用它。


    什么是gamstransfer,我们为什么需要它?

    虽然GAMS语法很强大,但它不是一种通用的编程语言。用户可能更喜欢依赖他们的偏好语言来执行任务不一定需要GAMS语言,例如来自各种数据源的数据处理I/O。对于使用R作为可以选择语言的用户来说,gamstransfer是一个能够与GAMS进行无缝数据交换的软件包。它提供了面向对象和直观的语法,用于读取和写入GDX文件,理解、分析和修改R中的GAMS数据。通过内部C++功能调用,gamstransfer具有很高的性能,能够将大量数据传输到GAMS,而不是处理单个符号的记录。


    如何安装gamstransfer?

    gamstransfer在CRAN上可用,可以通过R控制台中的单个命令安装:

    install.packages("gamstransfer")


    设计理念

    gamstransfer与transfer家族中的其他产品(如transfer Python和transfer Matlab)的理念相一致。其核心思想是使用一个Container来封装所有数据。Container具有状态感知能力,维护符号之间的链接(例如域链接),并支持跨多个符号的分析和操作。读写操作通过容器方法进行read和write。


    示例说明

    读取GDX文件gams_data.GDX只需要一次power调用。以下是从GAMS模型库读取运输模型数据的示例。

    library(gamstransfer)

    m = Container$new("trnsport.gdx")


    为了从这些数据中访问包含距离的参数,可以执行m[“d”]。要访问记录,可以使用m[“d”]$记录。目前,符号记录以R数据帧格式存储。


    假设数据是R格式的(来自Excel、SQL等任何来源),将其写入GDX文件很*,如下例所示。在这里,我们再次使用运输模型的数据。执行此操作的步骤如下:

    1. 创建容器

    2. 向容器中添加符号

    3. 使用$write power调用

    library(gamstransfer)

    m = Container$new()

     

    # create the sets i, j

    i = Set$new(m, "i", records = c("seattle", "san-diego"), description = "supply")

    j = Set$new(m, "j", records = c("new-york", "chicago", "topeka"), description = "markets")

     

    # add "d" parameter -- domain linked to set objects i and j

    d = Parameter$new(m, "d", c(i, j), description = "distance in thousands of miles")

     

    # create some data as a generic data frame

    dist = data.frame(

       from = c("seattle", "seattle", "seattle", 

       "san-diego", "san-diego", "san-diego"),

       to = c("new-york", "chicago", "topeka",

         "new-york", "chicago", "topeka"),

       thousand_miles = c(2.5, 1.7, 1.8, 2.5, 1.8, 1.4)

    )

     

    # setRecords will automatically convert the dist data frame into 

    # a standard data frame format

    d$setRecords(dist)

     

    注意,对于集合,记录作为向量传递,对于参数d,则作为data.frame传递。一旦数据被加载到Container中,将其写入GDX文件就很*了。

     

    gamstransfer利用R6包提供的面向对象编程功能。所有符号和容器都是R6对象,使gamstransfer能够通过引用传递数据并保持符号之间的可靠链接。此外,gamstransfer使用了新的、开源的基于C++的GDX API和R中的Rcpp包,保证了较高的读写操作性能。我们经常在拥有上亿条记录的数据集上测试gamstransfer。

     

    从GDXRRW过渡

    到目前为止,R用户一直依赖GDXRRW工具。随着gamstransfer的出现,GDXRRW现在已被弃用,将不再包含在GAMS中。

    北京天演融智软件有限公司(科学软件网)是GAMS软件在中国的授权经销商,为中国的用户提供优质的软件销售和培训服务。



    http://turntech8843.b2b168.com
    欢迎来到北京天演融智软件有限公司网站, 具体地址是北京市海淀区北京市海淀区上地东路35号院1号楼3层1-312-318、1-312-319,老板是赵亚君。 主要经营北京天演融智软件有限公司(科学软件网)主营产品PSCAD, CYME, SPSSPRO, Stata, Matlab,GAMS,Hydrus,GMS,Visual Modflow 等各学科软件,科学软件网有20多年的软件销售经验,提供专业销售和培训服务,还有更多的增值服务。目前,科学软件网提供的软件有数百种,软件涵盖的领域包括,经管,仿真,地球地理,生物化学,工程科学,排版及网络管理等各个学科。。 单位注册资金单位注册资金人民币 1000 - 5000 万元。 我们的产品优等,服务优质,您将会为选择我们而感到放心,我们将会为得到您认可而感到骄傲。