将字符串传递到寓言包中的函数模型



我可以轻松完成

require(fable)
require(tsibble)
require(tsibbledata) 
tourism %>% model(avg = MEAN(Trips))

它显然有效。

相反,我想实现这样的目标:

require(rlang)
tourism %>% model(parse_expr('avg = MEAN(Trips)'))

但我得到了:

Error: Model definition(s) incorrectly created: parse_expr("MEAN(Trips)")
Check that specified model(s) are model definitions.

感谢的帮助

我们需要eval评估

tourism %>%
model(avg = eval(rlang::parse_expr('avg = MEAN(Trips)')))

-输出

# A mable: 304 x 4
# Key:     Region, State, Purpose [304]
Region         State              Purpose      avg
<chr>          <chr>              <chr>    <model>
1 Adelaide       South Australia    Business  <MEAN>
2 Adelaide       South Australia    Holiday   <MEAN>
3 Adelaide       South Australia    Other     <MEAN>
4 Adelaide       South Australia    Visiting  <MEAN>
5 Adelaide Hills South Australia    Business  <MEAN>
6 Adelaide Hills South Australia    Holiday   <MEAN>
7 Adelaide Hills South Australia    Other     <MEAN>
8 Adelaide Hills South Australia    Visiting  <MEAN>
9 Alice Springs  Northern Territory Business  <MEAN>
10 Alice Springs  Northern Territory Holiday   <MEAN>
# … with 294 more rows

最新更新