裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Julia で R の deparse() みたいなもの(その2)

2021年01月23日 | ブログラミング

やはり,前の記事のは無理があるので,すっきりさせようと。

ただ,書式を与えられるようにと。

普通にやると動かないのは @printf() がマクロとはいえ,コンパイルされる関数で,fmt の部分に文字変数を指定しても動かない。それを回避するには @eval() を使うというヒントのページの助けを借りて以下のようなものを作った。

julia> using Printf

julia> function dumplist(name::String, object::Array{Float64,2}; fmt="%10.5f")
           nr, nc = size(object)
           println("----- $name -----")
           for i = 1:nr
               for j = 1:nc
                   @eval(@printf($fmt, $(object[i, j])))
               end
               print("\n")
           end
       end
dumplist (generic function with 1 method)

julia> x = [1.0 2 3; 4 5 6]
2×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0

julia> dumplist("name", x, fmt="%6.3f")

----- name -----
 1.000 2.000 3.000
 4.000 5.000 6.000

julia> dumplist("name", x, fmt="%6.3g")
----- name -----
     1     2     3
     4     5     6

出力が,パラパラパラ...と出てくるのが可笑しい。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村