Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

NA dimensions for complex and tuple types

クローズ
#925 コメント 6 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@jgabry がすでに取り組んでいます。

2026年9月23日 から。

  • #1174 @avehtari による — マージされずにクローズ
  • #1287 @jgabry による — オープン

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
r
領域
data

調査の方向性

tests/testthat/resources/stan/parameter_types で再現から始め、示されている $draws(format = "df") と $metadata() の呼び出しを実行します。variable_dims(metadata$variables) を追跡して、複雑な変数とタプル変数がどのように解析されるかを確認します。報告されるサイズが正しく、NA の強制変換に関する警告が表示されなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

bug

Describe the bug

When calling $draws() on a fit object whose model has complex or tuple types in it I receive warning messages about NA's being made for the variable sizes.

To Reproduce

I made the stan program below to test this

parameters {
  real real_p;
  vector[2] vector_p;
  matrix[2, 2] matrix_p;
  array[2] matrix[2, 2] array_matrix_p;
  corr_matrix[2] corr_p;
  complex complex_p;
  complex_matrix[2, 2] complex_matrix_p;
  complex_vector[4] complex_vector_p;
  tuple(real, vector[3], array[2] matrix[2, 2], complex) tuple_int_vector_arraymatrix_complex_p;
  array[2] tuple(real, tuple(vector[2], array[2] tuple(real, complex, matrix[2, 2]))) arraytuple_big_p;
}

You can get the error with the following

# I put this in the tests/testthat/resources/stan folder
mod_params <- testing_model("parameter_types")
fit <- mod_params$pathfinder(data=data_list, seed=1234, refresh = 0)
foo = fit$draws(format = "df")
# Warning messages:
# 1: In variable_dims(metadata$variables) : NAs introduced by coercion
# 2: In variable_dims(metadata$variables) : NAs introduced by coercion
# 3: In variable_dims(metadata$variables) : NAs introduced by coercion
# 4: In variable_dims(metadata$variables) : NAs introduced by coercion
# 5: In variable_dims(metadata$variables) : NAs introduced by coercion
meta = fit$metadata()
meta$stan_variable_sizes
## Output
$lp_approx__
[1] 1

$lp__
[1] 1

$real_p
[1] 1

$vector_p
[1] 2

$matrix_p
[1] 2 2

$array_matrix_p
[1] 2 2 2

$corr_p
[1] 2 2

$complex_p
[1] NA

$complex_matrix_p
[1]  2  2 NA

$complex_vector_p
[1]  4 NA

$`tuple_int_vector_arraymatrix_complex_p:1`
[1] 1

$`tuple_int_vector_arraymatrix_complex_p:2`
[1] 3

$`tuple_int_vector_arraymatrix_complex_p:3`
[1] 2 2 2

$`tuple_int_vector_arraymatrix_complex_p:4`
[1] NA

$arraytuple_big_p
[1] NA NA  2  2

Expected behavior

Tuples and complex types would have the correct size

Operating system
Linux redhat

CmdStanR version number
master 28329d7

Additional context
I found this while working on the functions for adding pathfinder types

主要言語
R
スター
161
フォーク
69
平均マージ
1日 10時間
マージ済み PR(30日)
47

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

stan-dev/cmdstanr のほかの issue

stan-dev/cmdstanr の issue をすべて見る

似ている issue

R の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。