我想解析一个字符串
s <- "I(log(x1)+myfunc(x2,1:3))"
到类似列表
list(I = list( log = "x1",
"+",
myfunc = list("x2", "1:3")
)
)
即
$I
$I$log
[1] "x1"
$I[[2]]
[1] "+"
$I$myfunc
$I$myfunc[[1]]
[1] "x2"
$I$myfunc[[2]]
[1] "1:3"
如何为该转换编写函数?任何资源将不胜感激。
修改
再三考虑,我有时会遇到类似"I(log(x1)+log(x2))"
的情况,在这种情况下,"log"
不能是两个人的名字。如果这没有发生,那么也许是一个起点strsplit keeping the delimiters.
tokens <- strsplit(x,'(?=[\\(\\),\\+\\-\\*/(\\s+)])', perl = TRUE)