2017-04-21 8 views
0

私は関数を複数の変数と統合するためにRを使用しています。ここで、各変数はベクトルです。どのようにベクトルソリューションを得るのですか?私はRに完全に新しく、一般的にコーディングしているので、私と一緒に裸でいます。 variable inputs複数の変数の統合。各変数はRのベクトルです。

私は、次の機能統合する必要があります:以下の変数を考慮する

> library(readr) 
> R_test_file <- read_csv("~/R test file.csv") 
Parsed with column specification: 
cols(
    Conversion = col_double(), 
    `Activation Energy (kJ/mol)` = col_double(), 
    `Ta upper (Kelvin)` = col_double(), 
    `Ta lower (Kelvin)` = col_double() 
) 
> View(R_test_file) 
> Ea = R_test_file$`Activation Energy (kJ/mol)` 
> TaU = R_test_file$`Ta upper (Kelvin)` 
> TaL = R_test_file$`Ta lower (Kelvin)` 
> int.fun=function(Ea,T) (exp(-Ea/(8.314462*T)))/(5(exp(-Ea/(8.314462*1173)))) 
> integrate(int.fun, TaL, TaU) 

あなたが提供できるすべてのヘルプ:ここ t∝ = time till conversion, Ta = Ta upper limit, Ta-∆∝ = Ta lower, E∝ = activation energy, β=5, T0=1173

は私が失敗したことを使用したコードです大いに感謝します。

答えて

0

関数の定義にはいくつかのエラーがあります。修正されたバージョン:

int.fun <- function(T, Ea) (exp(-Ea/(8.314462*T)))/(5*(exp(-Ea/(8.314462*1173)))) 

あなたはとしての機能を統合することができます:あなたはベクトル値を超える統合する場合、あなたはこのような何か行うことができます

integrate(int.fun, Ea=-33.54, lower=296.1008, upper=553.4211) 

: -

Ea <- c(-33.54, -33.51, 7.24, 159.18) 
TaU <- c(553.4211, 637.3555, 681.7970, 709.6234) 
TaL <- c(296.1008, 553.4211, 637.3555, 681.7970) 

lapply(seq_along(Ea), function(i) integrate(int.fun, Ea = Ea[i], lower = TaL[i], upper = TaU[i])) 
+0

を感謝しています働いた –

関連する問題