[问题] 以所有的运算子分离公式内的变量

楼主: yaowei2010 (yaowei)   2018-12-13 12:00:22
- 问题: 当你想要问问题时,请使用这个类别。
建议先到 http://tinyurl.com/mnerchs 搜寻本板旧文。
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
如题:
如果给任合一个多重运算子复杂的公式,我想要把所有的变量名称(不要数字)变成一个list,透过strsplit的话
[程式范例]:
test <- "x + b + (c2 -(d3 + wo22^0.2/123*3))"
输出:
x b c2 d3 wo22
因为strsplit用regular expression不太会用那么复杂的写法
想在这里问一下怎么拆掉这些运算符号
作者: andrew43 (讨厌有好心推文后删文者)   2018-12-13 13:17:00
没看懂。你期望得到的结果是?
作者: cywhale (cywhale)   2018-12-13 16:06:00
楼主: yaowei2010 (yaowei)   2018-12-14 10:24:00
感谢楼上!!
作者: andrew43 (讨厌有好心推文后删文者)   2018-12-14 10:36:00
谢楼上,我看懂了。
作者: celestialgod (天)   2018-12-14 20:35:00
这样比较简单: https://pastebin.com/uiNKgGEa转成formula用all.vars取出来
作者: cywhale (cywhale)   2018-12-14 20:49:00
好招耶,感谢分享,不知此function~~
作者: andrew43 (讨厌有好心推文后删文者)   2018-12-14 20:49:00
我猜测原po的数学式子不一定是R formula,用formula物件可能会和预期有所不同。
作者: celestialgod (天)   2018-12-14 20:51:00
只要原PO不出现R不认得的数学运算子就不会有问题这个还是要端看原PO的数学式子复杂度为何
作者: andrew43 (讨厌有好心推文后删文者)   2018-12-14 20:53:00
嗯嗯是至少用R formula预到exp()sqrt()之类的还能自动避开,用grep就还要额外处理。

Links booklink

Contact Us: admin [ a t ] ucptt.com