概要
wsl(wsl2じゃない)で、elixirやってみた。
練習問題やってみた。
練習問題
Livebookで、データフレームを使え。
新幹線の各県毎の駅数を分けてテーブルを作れ。
参考にしたページ
写真
サンプルコード
defmodule Oz do
use Agent
def start_link() do
Agent.start_link(fn ->
""
end, name: __MODULE__)
end
def get() do
Agent.get(__MODULE__, fn v ->
v
end)
end
def add(o) do
Agent.update(__MODULE__, fn v ->
v <> " " <> o
end)
end
def put(o) do
Agent.update(__MODULE__, fn v ->
o
end)
end
end
alias Explorer.DataFrame
alias Explorer.Series
import Explorer.DataFrame
Oz.start_link
df1 = Explorer.DataFrame.arrange(df, col("県"))
df1 = Explorer.DataFrame.group_by(df1, "県")
df1 = Explorer.DataFrame.mutate(df1, count: count(col("県")))
df1 = Explorer.DataFrame.distinct(df1, ["県", "count"])
map = Explorer.DataFrame.to_series(df1)
count = Explorer.Series.to_list(map["count"])
count = Enum.uniq(count)
count = Enum.sort(count, :desc)
Explorer.Series.from_list(count)
ken = for i <- count do
Oz.put(i)
m = Explorer.DataFrame.filter(df1, count == Oz.get)
Explorer.Series.to_list(m["県"])
end
|> Enum.map(fn x ->
x
|> Enum.map(fn y ->
y <> " "
end)
end)
Kino.DataTable.new(count: count, 県: ken)
以上。