슬롯 나라 전송 R

게시일: 2024년 6월 5일 뉴스 슬롯 나라 전송 R

슬롯 나라 Transfer R은 2022년 8월 슬롯 나라 주요 릴리스와 함께 처음 출시되었으며 이후의 모든 슬롯 나라 릴리스에 포함되었습니다. 최근에 우리는 슬롯 나라 Transfer R을 오픈소스로 만들었으며 다음에서 사용할 수 있습니다.CRAN. 이번 블로그 게시물에서는 슬롯 나라 Transfer R에 대한 간략한 개요, 그것이 무엇인지, 누구에게 도움을 주고자 하는지, 어떻게 사용하는지 설명하겠습니다.

무엇입니까gamstransfer왜 나에게 그것이 필요한가요?

슬롯 나라 구문은 강력하지만 일반적인 프로그래밍 언어는 아닙니다. 사용자는 다양한 데이터 소스의 데이터 처리 및 I/O와 같이 슬롯 나라가 반드시 필요하지 않은 작업을 수행하기 위해 선호하는 언어에 의존하는 것을 선호할 수 있습니다. R을 기본 언어로 사용하는 사용자의 경우,gamstransfer은 슬롯 나라와의 원활한 데이터 교환을 가능하게 하는 패키지입니다. R에서 GDX 파일을 읽고 쓰고, R에서 슬롯 나라 데이터를 이해, 분석 및 수정하기 위한 객체 지향적이고 직관적인 구문을 제공합니다. 내부 C++ 고급 호출을 사용하여,gamstransfer성능이 뛰어나며 개별 기호에 대한 레코드를 처리하는 대신 대량 데이터를 슬롯 나라로 전송할 수 있습니다.

설치 방법gamstransfer?

gamstransfer사용 가능 시간크랜R 콘솔에서 단일 명령으로 설치할 수 있습니다.

install.packages("gamstransfer")

디자인 철학

gamstransfer다음과 같은 전송 제품군의 다른 제품 철학과 일치합니다.파이썬 전송그리고Matlab 전송. 핵심 아이디어는 a컨테이너모든 데이터를 캡슐화합니다. 갑컨테이너은 상태를 인식하고 기호(예: 도메인 링크) 간의 링크를 유지하며 여러 기호에 대한 분석 및 작업을 가능하게 합니다. 읽기 및 쓰기 작업은 컨테이너 메서드를 통해 수행됩니다.읽기그리고쓰기.

빠른 시작 예

GDX 파일 읽기gams_data.gdx단 한 번의 전원 호출로 문제가 됩니다. 다음은에 대한 데이터를 읽는 예입니다.운송 모델슬롯 나라 모델 라이브러리에서.

라이브러리(gamstransfer)
m = 컨테이너$new("trnsport.gdx")

이 데이터의 거리를 포함하는 매개변수에 접근하려면 m[“d”]를 수행하면 됩니다. 레코드에 액세스하려면 m[“d”]$records를 사용할 수 있습니다. 현재 기호 레코드는 R data.frame 형식으로 저장됩니다.

데이터가 R(Excel, SQL 등과 같은 모든 소스에서..)에 있다고 가정하면 다음 예와 같이 GDX 파일에 쓰는 것이 쉽습니다. 여기서는 운송 모델에 대한 데이터를 다시 사용합니다. 이를 수행하는 단계는 다음과 같습니다.

  1. 컨테이너 생성
  2. 컨테이너에 기호 추가
  3. 사용$write전원 호출.
라이브러리(gamstransfer)
m = 컨테이너$new()

# 집합 i, j를 생성
i = Set$new(m, "i", records = c("시애틀", "샌디에고"), 설명 = "공급")
j = Set$new(m, "j", records = c("new-york", "시카고", "topeka"), 설명 = "시장")

# "d" 매개변수 추가 - 객체 i와 j를 설정하기 위해 연결된 도메인
d = Parameter$new(m, "d", c(i, j), 설명 = "천 마일 단위의 거리")

# 일반 데이터 프레임으로 일부 데이터를 생성합니다.
거리 = 데이터.프레임(
    from = c("시애틀", "시애틀", "시애틀", 
    "샌디에고", "샌디에고", "샌디에고"),
    to = c("뉴욕", "시카고", "토피카",
      "뉴욕", "시카고", "토피카"),
    천마일 = c(2.5, 1.7, 1.8, 2.5, 1.8, 1.4)
)

# setRecords는 자동으로 dist 데이터 프레임을 다음으로 변환합니다. 
# 표준 데이터 프레임 형식
d$setRecords(dist)

세트의 경우 레코드가 벡터로 전달되고 매개변수의 경우 레코드가 어떻게 전달되는지 참고d, data.frame으로 전달됩니다. 데이터가 컨테이너에 로드되면 GDX 파일에 쓰는 것이 쉽습니다.

m$write("trnsport.gdx")

내부적으로

gamstransfer에서 제공하는 객체 지향 프로그래밍 기능을 활용합니다.R6패키지. 모든 기호와 컨테이너는 R6 객체입니다.gamstransfer참조로 데이터를 전달하고 기호 간의 안정적인 링크를 유지합니다. 추가적으로,gamstransfer새롭고 오픈소스를 활용합니다C++ 기반 GDX API그리고RcppR 패키지로 읽기 및 쓰기 작업에 대한 고성능을 보장합니다. 우리는 정기적으로 테스트합니다gamstransfer수억 개의 레코드가 있는 데이터세트에 대해.

GDXRRW에서 전환

지금까지 R 사용자는 GDXRRW 도구에 의존해 왔습니다. gamstransfer의 출현으로 GDXRRW는 이제 더 이상 사용되지 않으며 더 이상 슬롯 나라와 함께 제공되지 않습니다.

피드백 제공 및 문제 보고

피드백, 기능 요청 또는 버그 보고서가 필요하면 문의하세요.support@슬롯 나라com또는 gamstransfer에서 문제 생성GitHub 저장소 .