[問題] 以所有的運算子分離公式內的變數

作者: 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