");
+
+ htmlTable.append("
");
+ htmlTable.append("各组均值和标准差");
+ JSONObject descriptiveStats = jsonObject.getJSONObject("描述性统计");
+ Set desKeys = descriptiveStats.keySet();
+ for (String key : desKeys) {
+ JSONObject item = descriptiveStats.getJSONObject(key);
+ JSONObject means = item.getJSONObject("均值");
+ JSONObject stdDevs = item.getJSONObject("标准差");
+
+ htmlTable.append("" + key + " | 均值 | 标准差 |
");
+ htmlTable.append("");
+ Set itemKeys = means.keySet();
+ for (String itemkey : itemKeys) {
+ htmlTable.append("")
+ .append("").append(itemkey).append(" | ")
+ .append("").append(String.format("%.2f", means.getDouble(itemkey))).append(" | ")
+ .append("").append(String.format("%.2f", stdDevs.getDouble(itemkey))).append(" | ")
+ .append("
");
+ }
+ htmlTable.append("");
+ }
+ htmlTable.append("
");
+
+ JSONObject anovaResults = jsonObject.getJSONObject("ANOVA结果");
+ htmlTable.append("
");
+ htmlTable.append("ANOVA结果");
+ htmlTable.append("变量 | sum_sq | df | F值 | p值 |
");
+ htmlTable.append("");
+ // Process C(广告类型)
+ Set keys = anovaResults.getJSONObject("sum_sq").keySet();
+ for (String key : keys) {
+ htmlTable.append("")
+ .append("").append(key).append(" | ")
+ .append("").append(anovaResults.getJSONObject("sum_sq").getDouble(key)).append(" | ")
+ .append("").append(anovaResults.getJSONObject("df").getDouble(key)).append(" | ")
+ .append("").append(anovaResults.getJSONObject("F").getString(key)).append(" | ")
+ .append("").append(anovaResults.getJSONObject("PR(>F)").getString(key)).append(" | ")
+ .append("
");
+ }
+ htmlTable.append("");
+ htmlTable.append("
");
+
+ JSONObject relatedStats = jsonObject.getJSONObject("相关统计量");
+ htmlTable.append("
");
+ htmlTable.append("相关统计量");
+ htmlTable.append("统计量 | 值 |
");
+ htmlTable.append("");
+ Set tongjikeys = relatedStats.keySet();
+ for (String key : tongjikeys) {
+ htmlTable.append("")
+ .append("").append(key).append(" | ")
+ .append("").append(relatedStats.get(key)).append(" | ")
+ .append("
");
+ }
+ htmlTable.append("");
+ htmlTable.append("
");
+
+
+ JSONObject ciLower = jsonObject.getJSONObject("置信区间").getJSONObject("0");
+ JSONObject ciUpper = jsonObject.getJSONObject("置信区间").getJSONObject("1");
+ htmlTable.append("
");
+ htmlTable.append(""+confidence_interval + "置信区间");
+ htmlTable.append("");
+ // Generate table headers dynamically
+ htmlTable.append("变量 | 下限 | 上限 | ");
+ htmlTable.append("
");
+ // Get all variable names (keys)
+ Set variableNames = ciLower.keySet();
+ // Generate table rows dynamically
+ for (String variable : variableNames) {
+ htmlTable.append("");
+ htmlTable.append("").append(variable).append(" | ");
+ htmlTable.append("").append(ciLower.getDouble(variable)).append(" | ");
+ htmlTable.append("").append(ciUpper.getDouble(variable)).append(" | ");
+ htmlTable.append("
");
+ }
+ htmlTable.append("
");
+
+
+// System.out.println(htmlTable.toString());
+ return htmlTable.toString();
+// System.out.println(html);
+ }
+
+ public static String assembleHtml_rel(String data, Double ace_level) {
+ // 解析 JSON 数据
+ JSONObject jsonObject = JSON.parseObject(data);
+ JSONObject descriptiveStatistics = jsonObject.getJSONObject("描述性统计");
+
+ // 获取动态列名
+ Set