当前位置:首页>python>【重复测量纵向数据】Python00-纵向数据生成及初步可视化代码

【重复测量纵向数据】Python00-纵向数据生成及初步可视化代码

  • 2026-03-02 12:32:50
【重复测量纵向数据】Python00-纵向数据生成及初步可视化代码
【重复测量纵向数据】
R语言00-纵向数据生成及初步可视化

纵向数据是在不同时间点上对同一组个体、物体或实体进行重复观测所收集的数据。它就像给研究对象拍摄“动态影像”,能记录其随时间变化的过程,帮助我们理解趋势、模式和影响因素。

01
🔬 纵向数据的常见来源

纵向数据遍布于众多致力于长期追踪变化的领域,以下是一些典型的场景:

-   医学与公共卫生研究:这是纵向数据大显身手的领域。例如,在临床试验中,长期追踪患者服用药物后的各项生理指标(如血压、血糖)的变化以评估疗效和安全性;在流行病学调查中,大型队列研究(如英国的UK Biobank)长期随访数以万计的人群,收集其生活习惯、环境暴露和健康结局数据,用以研究慢性病(如癌症、心脏病)的成因和预防策略。

-   社会科学与经济学:追踪调查是获取社会变迁数据的重要方式。例如,“英国老龄化纵向研究(ELSA)”持续追踪老年人群的健康、经济状况和社会参与度,为制定养老政策提供依据。在经济学中,持续收集多家公司在不同年份的财务报表(面板数据),可用于分析宏观经济政策对企业盈利能力的长期影响。

-   发展与教育研究: cohort研究是典型代表,如“千禧年队列研究(MCS)”从孩子出生起就开始追踪收集其家庭环境、教育经历、身心健康等多方面数据,用以研究儿童发展的规律及其影响因素。在学校教育中,定期记录学生多个学期的考试成绩,有助于评估教学方法的长期效果和学生的成长轨迹。

02
💡 为何纵向数据分析独具价值?

相比于横截面数据,纵向数据分析的独特意义主要体现在以下几个方面:

-   揭示个体动态变化轨迹:它能描绘出每个研究对象独特的发展路径,而不仅仅是某个时间点的静态情况。例如,我们能清晰地看到某个学生的成绩是稳步上升、波动不前还是逐渐下降,从而进行更具针对性的分析。

-   增强因果推断的可靠性:由于能够观察到变量在时间上的先后顺序,纵向数据为推断因果关系提供了更强有力的证据。例如,通过长期数据发现,吸烟行为的变化发生在肺癌诊断之前,这就比横截面数据中观察到的“吸烟者肺癌率高”更有力地支持了吸烟可能导致肺癌的假设。

-   控制不随时间变化的个体特征:每个人或实体都有一些固有的、难以测量的特质(如遗传背景、性格、企业文化)。纵向数据分析模型(如固定效应模型)能够有效控制这些“不随时间变化的个体异质性”,从而更准确地估计其他因素的真实效应。

03
💎 小结与提示

总的来说,纵向数据因其时间延续性对象一致性,成为了解事物动态发展过程、探究因果关系的强大工具。

当然,处理纵向数据也伴随一些挑战,例如成本较高、可能存在数据缺失,且分析方法通常比处理横截面数据更为复杂。

下面我们使用Python进行纵向数据模拟数据库的生成和初步可视化:

# ==================== Python代码:生成纵向数据 ====================import pandas as pdimport numpy as npfrom datetime import datetime, timedeltaimport osfrom pathlib import Pathfrom scipy import statsimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.preprocessing import LabelEncoder# 设置随机种子np.random.seed(12345)# 创建结果目录desktop_path = Path.home() / "Desktop"results_dir = desktop_path / "Results"results_dir.mkdir(exist_ok=True)# ==================== 生成模拟纵向数据 ====================def generate_longitudinal_data(n_individuals=100, n_timepoints=5, n_schools=20):"""    生成模拟纵向数据    参数:    n_individuals: 个体数量    n_timepoints: 每个个体的时间点数量    n_schools: 学校数量    """
# 2. 生成纵向数据    all_data = []for idx, ind in individuals.iterrows():# 个体特异性随机效应        random_intercept = np.random.normal(0, 2)        random_slope = np.random.normal(0, 0.5)# 治疗效应        treatment_map = {'A': 2, 'B': 3, 'C': 1.5, 'D': 0.5}        treatment_effect = treatment_map[ind['Treatment']]# 时间序列        time_seq = np.arange(n_timepoints)# 非线性时间效应        time_effect = 0.5 * time_seq + 0.1 * time_seq ** 2 + 0.05 * np.exp(0.2 * time_seq)# 交互效应        age_time_interaction = 0.01 * ind['Age'] * time_seq# 生成连续结局变量        outcome_continuous = (                30 + random_intercept +                (1.5 + random_slope) * time_seq +                treatment_effect * time_seq +                0.2 * ind['Age'] +                (1.2 if ind['Sex'] == 'M'else 0) +                0.3 * ind['Baseline_Score'] +                time_effect +                age_time_interaction +                np.random.normal(0, 1.5, n_timepoints)        )# 二分类结局        logit_prob = 1 / (1 + np.exp(-(0.1 * outcome_continuous - 2)))        outcome_binary = np.random.binomial(1, logit_prob)# 计数结局        outcome_count = np.random.poisson(np.exp(0.05 * outcome_continuous + 2))# 生存数据        outcome_survival = np.random.exponential(100, n_timepoints)        event_status = np.random.binomial(1, 0.3, n_timepoints)# 多个指标(用于因子分析)        indicator1 = 0.7 * outcome_continuous + np.random.normal(0, 2, n_timepoints)        indicator2 = 0.6 * outcome_continuous + np.random.normal(0, 2, n_timepoints)        indicator3 = 0.5 * outcome_continuous + np.random.normal(0, 2, n_timepoints)# 第二个变量(用于交叉滞后)        variable2 = np.zeros(n_timepoints)        variable2[0] = 0.6 * outcome_continuous[0] + np.random.normal(0, 1)for t in range(1, n_timepoints):            variable2[t] = (0.6 * outcome_continuous[t] +                            0.4 * outcome_continuous[t - 1] +                            np.random.normal(0, 1))# 时变协变量        medication_adherence = np.random.uniform(0.5, 1, n_timepoints)        stress_level = np.random.randint(1, 11, n_timepoints)        quality_of_life = np.random.uniform(20, 100, n_timepoints)# 测量日期        start_date = datetime(2023, 1, 1)        measurement_dates = [start_date + timedelta(days=30 * t) for t in range(n_timepoints)]# 潜在类别        latent_class = np.random.choice([1, 2, 3], p=[0.4, 0.35, 0.25])# 创建个体数据        individual_data = pd.DataFrame({'ID': np.full(n_timepoints, ind['ID']),'Time': time_seq,'Outcome_Continuous': np.round(outcome_continuous, 2),'Outcome_Binary': outcome_binary,'Outcome_Count': outcome_count,'Survival_Time': np.round(outcome_survival, 2),'Event_Status': event_status,'Variable2': np.round(variable2, 2),'Indicator1': np.round(indicator1, 2),'Indicator2': np.round(indicator2, 2),'Indicator3': np.round(indicator3, 2),'Medication_Adherence': np.round(medication_adherence, 2),'Stress_Level': stress_level,'Quality_of_Life': np.round(quality_of_life),'Measurement_Date': measurement_dates,'Age': np.full(n_timepoints, ind['Age']),'Sex': np.full(n_timepoints, ind['Sex']),'Treatment': np.full(n_timepoints, ind['Treatment']),'Baseline_Score': np.full(n_timepoints, ind['Baseline_Score']),'School_ID': np.full(n_timepoints, ind['School_ID']),'Genetic_Marker': np.full(n_timepoints, ind['Genetic_Marker']),'SES': np.full(n_timepoints, ind['SES']),'Latent_Class': np.full(n_timepoints, latent_class),'Random_Intercept': np.full(n_timepoints, random_intercept),'Random_Slope': np.full(n_timepoints, random_slope)        })        all_data.append(individual_data)# 合并所有数据    full_data = pd.concat(all_data, ignore_index=True)# 添加缺失值    missing_cols = ['Outcome_Continuous''Indicator1''Medication_Adherence']for col in missing_cols:        mask = np.random.random(len(full_data)) < 0.05        full_data.loc[mask, col] = np.nan# 添加离群值    outlier_idx = np.random.choice(len(full_data), 3, replace=False)    full_data.loc[outlier_idx, 'Outcome_Continuous'] *= 2.5return full_data# 生成数据print("正在生成模拟纵向数据...")full_data = generate_longitudinal_data(n_individuals=100, n_timepoints=5)# 创建简化版本simple_data = full_data[['ID''Time''Outcome_Continuous''Treatment''Age','Sex''Baseline_Score''School_ID''Measurement_Date']].copy()simple_data = simple_data.rename(columns={'Outcome_Continuous''Outcome'})# ==================== 保存数据 ====================# 保存为CSV文件full_data.to_csv(results_dir / "longitudinal_data_full.csv", index=False)simple_data.to_csv(results_dir / "longitudinal_data_simple.csv", index=False)# 保存为Excel文件with pd.ExcelWriter(results_dir / "longitudinal_data.xlsx") as writer:    full_data.to_excel(writer, sheet_name='Full_Dataset', index=False)    simple_data.to_excel(writer, sheet_name='Simple_Dataset', index=False)# 数据字典    data_dict = pd.DataFrame({'Variable_Name': full_data.columns,'Data_Type': [str(dtype) for dtype in full_data.dtypes],'Description': ['个体唯一标识符','测量时间点(0=基线,1=第1次随访,...)','主要连续结局变量(正态分布)','二分类结局变量(0/1)','计数结局变量(泊松分布)','生存时间(指数分布)','事件状态(0=删失,1=事件)','第二个相关变量(用于交叉滞后分析)','测量指标1(用于因子分析)','测量指标2(用于因子分析)','测量指标3(用于因子分析)','用药依从性比例(0-1)','压力水平评分(1-10)','生活质量评分(20-100)','测量日期','基线年龄','性别(M=男性,F=女性)','治疗分组(A,B,C,D)','基线得分','学校ID(用于多层模型)','遗传标记类型','社会经济状态','潜在类别(模拟不同轨迹组)','随机截距(用于模拟)','随机斜率(用于模拟)'        ]    })    data_dict.to_excel(writer, sheet_name='Data_Dictionary', index=False)# 保存为Parquet格式(更高效)full_data.to_parquet(results_dir / "longitudinal_data.parquet")simple_data.to_parquet(results_dir / "longitudinal_data_simple.parquet")# ==================== 数据质量检查 ====================print("\n数据质量检查:")print("=" * 50)print(f"总样本量: {len(full_data)} 行")print(f"个体数量: {full_data['ID'].nunique()}")print(f"时间点数量: {full_data['Time'].nunique()}")print(f"缺失值数量: {full_data.isna().sum().sum()}")print("\n连续变量统计摘要:")print(full_data.describe())print("\n类别变量分布:")print(full_data[['Sex''Treatment''SES']].value_counts().head())# ==================== 可视化数据 ====================print("\n生成可视化图表...")plt.figure(figsize=(15, 12))# 1. 个体轨迹图plt.subplot(2, 2, 1)for i in range(1, 21):  # 显示前20个个体的轨迹    individual_data = full_data[full_data['ID'] == i]    plt.plot(individual_data['Time'],             individual_data['Outcome_Continuous'],             alpha=0.5, linewidth=0.8)plt.xlabel('Time')plt.ylabel('Outcome (Continuous)')plt.title('Individual Trajectories')# 2. 治疗组平均轨迹plt.subplot(2, 2, 2)for treatment in ['A''B''C''D']:    treatment_data = full_data[full_data['Treatment'] == treatment]    mean_trajectory = treatment_data.groupby('Time')['Outcome_Continuous'].mean()    plt.plot(mean_trajectory.index, mean_trajectory.values,             label=f'Treatment {treatment}', linewidth=2)plt.xlabel('Time')plt.ylabel('Mean Outcome')plt.title('Average Trajectory by Treatment Group')plt.legend()# 3. 潜类别可视化plt.subplot(2, 2, 3)for latent_class in [1, 2, 3]:    class_data = full_data[full_data['Latent_Class'] == latent_class]    mean_trajectory = class_data.groupby('Time')['Outcome_Continuous'].mean()    plt.plot(mean_trajectory.index, mean_trajectory.values,             label=f'Latent Class {latent_class}', linewidth=2)plt.xlabel('Time')plt.ylabel('Mean Outcome')plt.title('Trajectory by Latent Class')plt.legend()# 4. 分布直方图plt.subplot(2, 2, 4)plt.hist(full_data['Outcome_Continuous'].dropna(), bins=30,         edgecolor='black', alpha=0.7)plt.xlabel('Outcome (Continuous)')plt.ylabel('Frequency')plt.title('Distribution of Outcome Variable')plt.tight_layout()plt.savefig(results_dir / "data_visualization.png", dpi=300, bbox_inches='tight')plt.close()# ==================== 生成Python分析示例代码 ====================python_example_code = '''# ==================== Python纵向数据分析示例 ====================import pandas as pdimport numpy as npimport statsmodels.api as smimport statsmodels.formula.api as smffrom linearmodels.panel import PanelOLSfrom sklearn.mixture import GaussianMixtureimport xgboost as xgbfrom scipy import statsimport matplotlib.pyplot as pltimport seaborn as sns# 1. 混合效应模型import statsmodels.formula.api as smfmodel_mixed = smf.mixedlm("Outcome_Continuous ~ Time * Treatment",                          full_data, groups=full_data["ID"],                          re_formula="~Time").fit()print(model_mixed.summary())# 2. 固定效应模型from linearmodels.panel import PanelOLSfull_data_panel = full_data.set_index(['ID', 'Time'])model_fe = PanelOLS.from_formula('Outcome_Continuous ~ Treatment + EntityEffects',                                 data=full_data_panel).fit()# 3. 多层线性模型model_hlm = smf.mixedlm("Outcome_Continuous ~ Time", full_data,                         groups=full_data["School_ID"],                        re_formula="~Time").fit()# 4. 广义估计方程model_gee = smf.gee("Outcome_Binary ~ Time * Treatment", "ID", full_data,                   cov_struct=sm.cov_struct.Exchangeable(),                   family=sm.families.Binomial()).fit()# 5. 广义线性混合模型 (GLMM)# 可以使用statsmodels或专门的包# 9. 重复测量ANOVAimport pingouin as pgrm_anova = pg.rm_anova(data=full_data, dv='Outcome_Continuous',                        within='Time', subject='ID')# 13. 广义相加模型 (GAM)from pygam import LinearGAM, smodel_gam = LinearGAM(s(0) + s(1)).fit(full_data[['Time', 'Age']],                                        full_data['Outcome_Continuous'])# 14-15. 潜类别/剖面模型from sklearn.mixture import GaussianMixturegmm = GaussianMixture(n_components=3).fit(full_data[['Outcome_Continuous',                                                      'Stress_Level',                                                      'Quality_of_Life']])full_data['cluster'] = gmm.predict(full_data[['Outcome_Continuous',                                              'Stress_Level',                                              'Quality_of_Life']])# 16. 状态空间模型from statsmodels.tsa.statespace.sarimax import SARIMAXmodel_ssm = SARIMAX(full_data['Outcome_Continuous'], order=(1,0,0)).fit()# 18. 贝叶斯模型 (使用pymc3)import pymc3 as pmwith pm.Model():    alpha = pm.Normal('alpha', mu=0, sigma=10)    beta = pm.Normal('beta', mu=0, sigma=10)    mu = alpha + beta * full_data['Time']    y_obs = pm.Normal('y_obs', mu=mu, sigma=1, observed=full_data['Outcome_Continuous'])    trace = pm.sample(1000)# 19. 混合效应随机森林# 可以使用merf库# 20. 纵向梯度提升dtrain = xgb.DMatrix(full_data[['Time', 'Age', 'Baseline_Score']],                      label=full_data['Outcome_Continuous'])params = {'objective': 'reg:squarederror', 'max_depth': 3}model_xgb = xgb.train(params, dtrain, num_boost_round=100)# 21. K均值纵向聚类# 将数据转换为宽格式wide_data = full_data.pivot(index='ID', columns='Time', values='Outcome_Continuous')from sklearn.cluster import KMeanskmeans = KMeans(n_clusters=3).fit(wide_data.fillna(wide_data.mean()))# 22. 基于模型的聚类from sklearn.mixture import GaussianMixturegmm_cluster = GaussianMixture(n_components=3).fit(full_data[['Outcome_Continuous', 'Time']])full_data['model_cluster'] = gmm_cluster.predict(full_data[['Outcome_Continuous', 'Time']])'''# 保存Python示例代码with open(results_dir / "example_analysis_python.py""w", encoding="utf-8") as f:    f.write(python_example_code)# ==================== 生成元数据文件 ====================metadata = {"dataset_info": {"name""Longitudinal_Mixed_Effects_Dataset","version""1.0","creation_date": datetime.now().strftime("%Y-%m-%d"),"description""Simulated longitudinal dataset for testing various statistical models"    },"dimensions": {"n_individuals": int(full_data['ID'].nunique()),"n_timepoints": int(full_data['Time'].nunique()),"n_variables": int(len(full_data.columns)),"total_observations": int(len(full_data))    },"variables": [        {"name": col,"type": str(full_data[col].dtype),"n_unique": int(full_data[col].nunique()) if full_data[col].dtype == 'object'else None,"missing": int(full_data[col].isna().sum())        }for col in full_data.columns    ],"generation_parameters": {"random_seed": 12345,"n_individuals": 100,"n_timepoints": 5,"treatment_groups": ["A""B""C""D"],"time_effect""linear + quadratic + exponential","random_effects": ["intercept""slope"]    }}import jsonwith open(results_dir / "metadata.json""w", encoding="utf-8") as f:    json.dump(metadata, f, indent=2, ensure_ascii=False)# ==================== 输出总结信息 ====================print("\n" + "=" * 60)print("数据生成完成!")print("=" * 60 + "\n")print("生成的文件:")files_generated = ["longitudinal_data.xlsx","longitudinal_data_full.csv","longitudinal_data_simple.csv","longitudinal_data.parquet","longitudinal_data_simple.parquet","data_visualization.png","example_analysis_python.py","metadata.json"]for file in files_generated:    file_path = results_dir / fileprint(f"  ✓ {file} ({file_path.stat().st_size / 1024:.1f} KB)")print(f"\n数据集结构:")print(f"  总行数: {len(full_data)}")print(f"  总列数: {len(full_data.columns)}")print(f"  个体数: {full_data['ID'].nunique()}")print(f"  时间点: {full_data['Time'].max() + 1}")print("\n变量类型:")dtype_counts = full_data.dtypes.value_counts()for dtype, count in dtype_counts.items():print(f"  {dtype}: {count} 个变量")print(f"\n数据已保存到: {results_dir}")print("\n可以使用以下代码加载数据:")print(f"  R语言: load('{results_dir / 'longitudinal_data.RData'}')")print(f"  Python: pd.read_csv('{results_dir / 'longitudinal_data_full.csv'}')")# 显示前几行数据示例print("\n数据示例(前5行):")print(full_data.head().to_string())

纵向数据是指在多个时间点对同一组个体进行的重复测量。

混合效应模型Mixed Effects ModelMEM

2 固定效应模型 Fixed Effects Model FEM

3 多层线性模型 Hierarchical Linear Model HLM

4 广义估计方程 Generalized Estimating Equations GEE

5 广义线性混合模型 Generalized Linear Mixed Models GLMM

6 潜变量增长曲线模型 Latent Growth Curve Model LGCM

7 组轨迹模型 Group-Based Trajectory Model GBTM

8 交叉滞后模型 Cross-lagged (Panel) Model CLPM

9 重复测量方差分析 Repeated Measures ANOVA / MANOVA RM-ANOVA / RM-MANOVA

10 非线性混合效应模型 Nonlinear Mixed-Effects Models NLME

11 联合模型     Joint Models     JM

12 结构方程模型 Structural Equation Modeling SEM

13 广义相加模型 Generalized Additive Models GAM

14 潜类别模型 Latent Class Models LCM

15 潜剖面模型 Latent Profile Analysis LPA

16 状态空间模型 State Space Models SSM

17 纵向因子分析 Longitudinal Factor Analysis LFA

18 贝叶斯纵向模型 Bayesian Longitudinal Models - (Bayesian Models)

19 混合效应随机森林 Mixed Effects Random Forest MERF

20 纵向梯度提升 Longitudinal Gradient Boosting - (Longitudinal GBM)

21 K均值纵向聚类 K-means Longitudinal Clustering - (DTW-KMeans)

22 基于模型的聚类 Model-Based ClusteringMB-CLUST

医学统计数据分析分享交流SPSS、R语言、Python、ArcGis、Geoda、GraphPad、数据分析图表制作等心得。承接数据分析,论文返修,医学统计,机器学习,生存分析,空间分析,问卷分析业务。若有投稿和数据分析代做需求,可以直接联系我,谢谢!

!!!可加我粉丝群!!!

“医学统计数据分析”公众号右下角;

找到“联系作者”,

可加我微信,邀请入粉丝群!

【医学统计数据分析】工作室“粉丝群”
01
【临床】粉丝群

有临床流行病学数据分析

如(t检验、方差分析、χ2检验、logistic回归)、

(重复测量方差分析与配对T检验、ROC曲线)、

(非参数检验、生存分析、样本含量估计)、

(筛检试验:灵敏度、特异度、约登指数等计算)、

(绘制柱状图、散点图、小提琴图、列线图等)、

机器学习、深度学习、生存分析

等需求的同仁们,加入【临床】粉丝群

02
【公卫】粉丝群

疾控,公卫岗位的同仁,可以加一下【公卫】粉丝群,分享生态学研究、空间分析、时间序列、监测数据分析、时空面板技巧等工作科研自动化内容。

03
【生信】粉丝群

有实验室数据分析需求的同仁们,可以加入【生信】粉丝群,交流NCBI(基因序列)、UniProt(蛋白质)、KEGG(通路)、GEO(公共数据集)等公共数据库、基因组学转录组学蛋白组学代谢组学表型组学等数据分析和可视化内容。

或者可扫码直接加微信进群!!!

精品视频课程-“医学统计数据分析”视频号付费合集

“医学统计数据分析”视频号-付费合集兑换相应课程后,获取课程理论课PPT、代码、基础数据等相关资料,请大家在【医学统计数据分析】公众号右下角,找到“联系作者”,加我微信后打包发送。感谢您的支持!!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-02 21:55:54 HTTP/2.0 GET : https://f.mffb.com.cn/a/477655.html
  2. 运行时间 : 0.133500s [ 吞吐率:7.49req/s ] 内存消耗:4,618.15kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a9221a59edeeea7ef8542f0f0448b7eb
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000901s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001753s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000750s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000669s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001606s ]
  6. SELECT * FROM `set` [ RunTime:0.000555s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001825s ]
  8. SELECT * FROM `article` WHERE `id` = 477655 LIMIT 1 [ RunTime:0.001422s ]
  9. UPDATE `article` SET `lasttime` = 1772459754 WHERE `id` = 477655 [ RunTime:0.004173s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000735s ]
  11. SELECT * FROM `article` WHERE `id` < 477655 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001088s ]
  12. SELECT * FROM `article` WHERE `id` > 477655 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001203s ]
  13. SELECT * FROM `article` WHERE `id` < 477655 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006067s ]
  14. SELECT * FROM `article` WHERE `id` < 477655 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.014597s ]
  15. SELECT * FROM `article` WHERE `id` < 477655 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002071s ]
0.137570s