簡體   English   中英

評估R中的數學表達式

[英]Evaluating mathematical expression in R

我有一個包含數學表達式的向量作為向量的第一個索引,請參見下文

(A+(B*C)/D)

其中A,B,CD是我的data.table的字段名稱,現在我想向我的data.table添加一個新的field( result ),應根據矢量中包含的表達式進行求值(上面提供的示例) )

作為解決方案,我遍歷數據表的每個記錄和每個字段以計算每一行的值,我認為這可能不是R中的最佳解決方案,因此想檢查是否還有其他可能解決我的問題。

我不想使用諸如dt $ A,dt $ B之類的基本R操作,因為它減慢了該過程。我的表情是來自閃亮應用程序的用戶輸入,因此我無法對字段名進行硬編碼

感謝幫助。

您可以在data.table的環境中評估字符串。 作為一個簡單的例子:

#parse the text first
express <- parse(text = 'A+(B*C)/D')

#dummy data 
library(data.table)
dt <- data.table(A = runif(5),
                 B = runif(5),
                 C = runif(5),
                 D = runif(5))

#using eval
eval(express, envir = dt)
#[1] 0.2654480 0.6818451 0.7611150 5.5714248 2.8076066

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM