sea*_*avi 1 r lazy-evaluation pryr
我想将 R 表达式解析为列表,并在最终将其转换为 json 对象之前选择性地修改它的各个方面。举个例子,我正在尝试实现以下目标:
{"op": "=",
"content": {
"lhs": "gender",
"rhs": ["male"]
}
}
Run Code Online (Sandbox Code Playgroud)
我将从 R 表达式开始,例如:
gender == "male"
Run Code Online (Sandbox Code Playgroud)
我可以用来pryr::ast获取树的文本版本,但我想将其作为列表获取,例如:
op: "=="
[[1]]: "gender"
[[2]]: "male"
Run Code Online (Sandbox Code Playgroud)
列表的“格式”细节并不那么重要,只要清楚即可。我的目标只是获得一个可计算且可修改的 R 表达式解析树。
您正在寻找这样的东西吗?
expr <- quote(gender == "male")
expr[[1]]
# `==`
expr[[2]]
# gender
expr[[3]]
# "male"
expr[[3]] <- "female"
expr
# gender == "female"
Run Code Online (Sandbox Code Playgroud)