shahryarjb
Undefined variable in across Explorer.DataFrame
Hello, I started the ml elixir book, the first code in this book has error for me ![]()
require Explorer.DataFrame, as: DF
iris = Explorer.Datasets.iris()
cols = ["sepal_width", "sepal_length", "petal_length", "petal_width"]
DF.mutate(iris,
for col <- across(cols) do
{col.name, (col - mean(col)) / variance(col)}
end
)
Errors
** (ArgumentError) undefined variable "cols"
(explorer 0.6.1) lib/explorer/query.ex:365: Explorer.Query.traverse/3
(elixir 1.15.2) lib/enum.ex:1819: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(explorer 0.6.1) lib/explorer/query.ex:375: Explorer.Query.traverse/3
(explorer 0.6.1) lib/explorer/query.ex:401: Explorer.Query.traverse_for/3
(explorer 0.6.1) lib/explorer/query.ex:298: anonymous fn/3 in Explorer.Query.traverse/2
(elixir 1.15.2) lib/enum.ex:1819: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(explorer 0.6.1) lib/explorer/query.ex:296: Explorer.Query.traverse/2
(explorer 0.6.1) expanding macro: Explorer.Query.query/1
I am using LiveBook v0.10.0 and these deps:
Mix.install([
{:axon, "~> 0.5"},
{:nx, "~> 0.5"},
{:explorer, "~> 0.5"},
{:kino, "~> 0.5"}
])
It should be noted if I use the list directly it has not problem
require Explorer.DataFrame, as: DF
iris = Explorer.Datasets.iris()
DF.mutate(iris,
for col <- across( ["sepal_width", "sepal_length", "petal_length", "petal_width"]) do
{col.name, (col - mean(col)) / variance(col)}
end
)
why it has this error?
Thank you in advance
Marked As Solved
codeanpeace
It seems like Explorer.Query adopted a similar approach to Ecto.Query in its use of ^ for interpolation.
reference: Interpolation and Casting | Ecto.Query & Interpolation | Explorer.Query
p.s. It’s worth noting that the ^ in Ecto and Explorer is not the same as the ^ pin operator in Elixir – learn more about it here: https://stackoverflow.com/questions/73588330/why-do-ecto-queries-need-the-pin-operator
Also Liked
seanmor5
Yeah, this is tracked here as well: Machine Learning in Elixir: Error in Chapter 1, first code snippet of "Preparing the Data for Training" (page 13) - PragProg Customers - Devtalk
It will be fixed when the next version is released









