Pvalue 計算
項目設計pvalue計算,但是由於.net 沒有類似的公式或者函數,最終決定使用.net 調用R語言
采用.net 調用r語言的公用函數
需要安裝 r語言環境 https://mirrors.tuna.tsinghua.edu.cn/CRAN/
前端調用api 發現需要ajax 同步調用
public string GetPValue(double[] data1, double[] data2)
{
REngine.SetEnvironmentVariables();
REngine engine = REngine.GetInstance();
// REngine需要明確的初始化,
// 你可以設置一些參數。
engine.Initialize();
// net向量轉R向量
NumericVector group1 = engine.CreateNumericVector(data1);
engine.SetSymbol("group1", group1);
// 直接R腳本解析
// string value = "group2 <- c(55,66,377,88)";
NumericVector group2 = engine.Evaluate("group2 <- c(" + string.Join(",", data2) + ")").AsNumeric();
// 測試不同並獲取Pvalue
GenericVector testResult = engine.Evaluate("t.test(group1, group2,var.equal = TRUE)").AsList();
double pValue = testResult["p.value"].AsNumeric().First();
//engine.Dispose();
return Convert.ToDouble(pValue).ToString("f3");// GetThree(ObjConvert.ObjString(Math.Round(pValue, 3)));
//REngine.SetEnvironmentVariables();
// REngine engine = REngine.GetInstance();
// REngine需要明確的初始化,
// 你可以設置一些參數。
//engine.Initialize();
// net向量轉R向量
