2017-03-15 6 views
1

私はScalaの初心者です。私はPython Numpy + Pandasのバックグラウンドから来たので、Saddle Projectに非常に興味があります。Scalaサドル:動的にVecまたはシリーズオブジェクトを作成する

ドキュメントは、次のような静的な方法でベクターおよびシリーズを作成する方法を示しています。

val v = Vec(1, 2)     
val s = Series("a" -> 1, "b" -> 2) 

私は(私はそれを見つけることができませんでした、またはにスカラ座での十分な知識を持っていないのどちらか知りたいのですがベクトル

について

:どのように私はリストから動的に作成したり、地図が、私はこのような何かを行うことができますどのように

オブジェクトことができます)自分で理解して現時点でシリーズ

val myMap = Map("a"-> 1, "b"->2) 
val mySeries = Series(myMap) 

については

それはシリーズそれに対する値

res48: Vec[List[Int]] = [1 x 1] 
List(1, 2) 

として一覧でベクトルを作成しているベクトルの明白な、

を行うことですMapオブジェクトを値として持つSeriesを作成しています

res51: Series[Int, Map[String, Int]] = [1 x 1] 
0 -> Map(a -> 1, b -> 2) 

期待される結果は次のとおりです。私がやったかのように

ベクトルの

は次のとおりです。

シリーズの
> Vec(1, 2) 
res52: Vec[Int] = [2 x 1] 
1 
2 

は、私がやった場合のようなものです:

Series("a"-> 1, "b" -> 2) 
res53: Series[String, Int] = [2 x 1] 
a -> 1 
b -> 2 

ありがとう

答えて

2

Listのパラメータを設定する場合は、実際の:_ *演算子(セミコロンアンダースコアのスター演算子)を使用してください。これは、実際には関連オブジェクトを「スプラット」します。あなたの質問に答えるために

、あなたがListのためにこれを行うことによって期待される結果になります:Mapsについては

val myList = List(1,2) 
val myVec = Vec(myList:_*) 

あなたがコレクションを変換するために持っているとして、それは上から少し異なっていますa Sequence

val myMap = Map("a"->1,"b"->2) 
val myVec = Vec(myMap.toSeq:_*) 
+0

ありがとうございます!私はこれを考えていましたが、私の答えにグーグルで行くことはできませんでした! –

関連する問題