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向量
|
请发表评论