How to pull out the underlying query syntax being used by dataset?Normal // Association // Dataset workaround...
What does the view outside my ship traveling at light speed look like?
Is it possible to play as a necromancer skeleton?
Employer asking for online access to bank account - Is this a scam?
Why does Mjolnir fall down in Age of Ultron but not in Endgame?
How strong are Wi-Fi signals?
I think I may have violated academic integrity last year - what should I do?
Is it rude to call a professor by their last name with no prefix in a non-academic setting?
Are these reasonable traits for someone with autism?
Ticket to ride, 1910: What are the big cities
What is the largest (size) solid object ever dropped from an airplane to impact the ground in freefall?
Why do most published works in medical imaging try to reduce false positives?
Why does the 6502 have the BIT instruction?
How to use " shadow " in pstricks?
Were pens caps holes designed to prevent death by suffocation if swallowed?
Construct a word ladder
I unknowingly submitted plagarised work
When and what was the first 3D acceleration device ever released?
Crossing US border with music files I'm legally allowed to possess
Simple fuzz pedal using breadboard
How to use Palladio font in text body but Computer Modern for Equations?
Installed Electric Tankless Water Heater - Internet loss when active
Count Even Digits In Number
What are these arcade games in Ghostbusters 1984?
Is it unethical to use a published code in my PhD thesis work?
How to pull out the underlying query syntax being used by dataset?
Normal // Association // Dataset workaround for some user query operatorsAssociationMap to query Dataset across levels?How to insert zero counts uniformly with Dataset Counts queryPossible bug involving Dataset/Query and RightCompositionUpdated: Correct Formatting of Dataset (labeled columns and rows) for Predict v NetTrain?Dataset Processing: efficient ways to clean and merge sets for Life SciencesQuery and Dataset Syntax PeculiaritiesHow to get parent key in Query on Association/Dataset?Truncation of Labels and Data when visualized as DatasetNested Dataset and the Query operator
$begingroup$
Consider the following dataset.
titanic = ExampleData[{"Dataset", "Titanic"}]
If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.
titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}] // InputForm
If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.
I want to extract the Query being used. I tried the following with no success.
query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]
Once the Query is extracted I can just use Normal[query] to get the optimized version.
Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.
dataset query
$endgroup$
add a comment |
$begingroup$
Consider the following dataset.
titanic = ExampleData[{"Dataset", "Titanic"}]
If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.
titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}] // InputForm
If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.
I want to extract the Query being used. I tried the following with no success.
query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]
Once the Query is extracted I can just use Normal[query] to get the optimized version.
Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.
dataset query
$endgroup$
add a comment |
$begingroup$
Consider the following dataset.
titanic = ExampleData[{"Dataset", "Titanic"}]
If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.
titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}] // InputForm
If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.
I want to extract the Query being used. I tried the following with no success.
query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]
Once the Query is extracted I can just use Normal[query] to get the optimized version.
Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.
dataset query
$endgroup$
Consider the following dataset.
titanic = ExampleData[{"Dataset", "Titanic"}]
If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.
titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}] // InputForm
If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.
I want to extract the Query being used. I tried the following with no success.
query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]
Once the Query is extracted I can just use Normal[query] to get the optimized version.
Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.
dataset query
dataset query
edited 6 hours ago
Carl Woll
80.7k3104208
80.7k3104208
asked 8 hours ago
user13892user13892
1,483719
1,483719
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:
extractDatasetInformation[ds_Dataset] := Block[{Dataset = Inactive[Dataset]},
Uncompress[Compress[ds]][[3]]
]
Your example:
q = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
extractDatasetInformation[q]
%["Origin"]
<|"Origin" ->
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]]
$endgroup$
$begingroup$
Thank you. Can you please explain why did you compress the inactiveDatasetexpression and uncompress it before extracting the part?
$endgroup$
– user13892
6 hours ago
add a comment |
$begingroup$
We can extract the query from the dataset object through pattern-matching:
datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query
Then:
titanic = ExampleData[{"Dataset", "Titanic"}];
ds = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
datasetQuery[ds]
(* Query[Select[#survived == True && #age > 60 &], {"class", "sex"}] *)
Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.
$endgroup$
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f199097%2fhow-to-pull-out-the-underlying-query-syntax-being-used-by-dataset%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:
extractDatasetInformation[ds_Dataset] := Block[{Dataset = Inactive[Dataset]},
Uncompress[Compress[ds]][[3]]
]
Your example:
q = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
extractDatasetInformation[q]
%["Origin"]
<|"Origin" ->
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]]
$endgroup$
$begingroup$
Thank you. Can you please explain why did you compress the inactiveDatasetexpression and uncompress it before extracting the part?
$endgroup$
– user13892
6 hours ago
add a comment |
$begingroup$
There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:
extractDatasetInformation[ds_Dataset] := Block[{Dataset = Inactive[Dataset]},
Uncompress[Compress[ds]][[3]]
]
Your example:
q = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
extractDatasetInformation[q]
%["Origin"]
<|"Origin" ->
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]]
$endgroup$
$begingroup$
Thank you. Can you please explain why did you compress the inactiveDatasetexpression and uncompress it before extracting the part?
$endgroup$
– user13892
6 hours ago
add a comment |
$begingroup$
There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:
extractDatasetInformation[ds_Dataset] := Block[{Dataset = Inactive[Dataset]},
Uncompress[Compress[ds]][[3]]
]
Your example:
q = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
extractDatasetInformation[q]
%["Origin"]
<|"Origin" ->
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]]
$endgroup$
There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:
extractDatasetInformation[ds_Dataset] := Block[{Dataset = Inactive[Dataset]},
Uncompress[Compress[ds]][[3]]
]
Your example:
q = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
extractDatasetInformation[q]
%["Origin"]
<|"Origin" ->
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>
HoldComplete[
Query[Select[#survived == True && #age > 60 &], {"class", "sex"}][
Dataset`DatasetHandle[263616672941144]]]
answered 6 hours ago
Carl WollCarl Woll
80.7k3104208
80.7k3104208
$begingroup$
Thank you. Can you please explain why did you compress the inactiveDatasetexpression and uncompress it before extracting the part?
$endgroup$
– user13892
6 hours ago
add a comment |
$begingroup$
Thank you. Can you please explain why did you compress the inactiveDatasetexpression and uncompress it before extracting the part?
$endgroup$
– user13892
6 hours ago
$begingroup$
Thank you. Can you please explain why did you compress the inactive
Dataset expression and uncompress it before extracting the part?$endgroup$
– user13892
6 hours ago
$begingroup$
Thank you. Can you please explain why did you compress the inactive
Dataset expression and uncompress it before extracting the part?$endgroup$
– user13892
6 hours ago
add a comment |
$begingroup$
We can extract the query from the dataset object through pattern-matching:
datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query
Then:
titanic = ExampleData[{"Dataset", "Titanic"}];
ds = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
datasetQuery[ds]
(* Query[Select[#survived == True && #age > 60 &], {"class", "sex"}] *)
Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.
$endgroup$
add a comment |
$begingroup$
We can extract the query from the dataset object through pattern-matching:
datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query
Then:
titanic = ExampleData[{"Dataset", "Titanic"}];
ds = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
datasetQuery[ds]
(* Query[Select[#survived == True && #age > 60 &], {"class", "sex"}] *)
Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.
$endgroup$
add a comment |
$begingroup$
We can extract the query from the dataset object through pattern-matching:
datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query
Then:
titanic = ExampleData[{"Dataset", "Titanic"}];
ds = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
datasetQuery[ds]
(* Query[Select[#survived == True && #age > 60 &], {"class", "sex"}] *)
Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.
$endgroup$
We can extract the query from the dataset object through pattern-matching:
datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query
Then:
titanic = ExampleData[{"Dataset", "Titanic"}];
ds = titanic[Select[#survived == True && #age > 60 &], {"class", "sex"}];
datasetQuery[ds]
(* Query[Select[#survived == True && #age > 60 &], {"class", "sex"}] *)
Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.
answered 6 hours ago
WReachWReach
54.1k2117217
54.1k2117217
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f199097%2fhow-to-pull-out-the-underlying-query-syntax-being-used-by-dataset%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown