import pandas as pd
import numpy as np
# 將 rpy2 導入移到函數內部,避免模組層級導入
from typing import Dict, Any, List
import logging
import time
import os
from io import StringIO
from ..utils.date_utils import format_execution_time
from ..utils.encodeAscii2Utf8 import fix_chinese_encoding
logger = logging.getLogger(__name__)
def decision_tree_interaction_analysis(data: pd.DataFrame,
target: str = "ooc_rate",
method: str = "anova") -> Dict[str, Any]:
"""
在需要時才導入 rpy2,避免影響熱重載
"""
try:
# 延遲導入 rpy2
import rpy2.robjects as ro
from rpy2.robjects import pandas2ri
# 局部啟用 pandas 轉換
with pandas2ri.localconverter(pandas2ri.default_converter):
# 在這裡執行 R 相關操作
# ... 您的分析邏輯 ...
pass
return {"status": "success", "data": "analysis_results"}
except ImportError:
logger.warning("rpy2 未安裝,使用替代方案")
return {"status": "fallback", "message": "使用 Python 原生實現"}
except Exception as e:
logger.error(f"R 分析失敗: {e}")
return {"status": "error", "message": str(e)}