别让 Excel 毁了你的科研:数据录入的“生死红线”
你是不是这样录数据的? 打开 Excel,第一行写上“姓名、性别、诊断”,然后就开始填。遇到不确定的填个“?”,遇到没查到的空着,遇到同一种药有时候写“阿司匹林”有时候写“Asp”。三个月后,当你把这表格发给统计师,你会收到一句冷冰冰的回复: “数据太乱,没法算,回去重搞。”今天我们就来聊聊,怎么建立一个 “机器喜欢” 的数据库,而不是 “眼睛喜欢” 的表格。Excel 是个好用的电子表格,但作为数据库,它有两个致命弱点:没有约束 :你可以在“年龄”栏里填“56岁”,也可以填“大概50多”。但统计软件只能识别数字,它看不懂汉字。容易手滑 :拖拽复制时,很容易把上一行的数据覆盖到下一行,你自己还完全没发现。对于严肃的临床研究(特别是前瞻性研究),我们强烈推荐使用专业工具,如 EpiData 或 REDCap 。EpiData :免费、轻量、无需联网。它的杀手锏是 “双录入核查” (两个人分别录一遍,软件自动找不同),能把录入错误率降到几乎为零。REDCap :Web端,高大上,多中心研究标配。能设置逻辑跳转(选了“女性”自动跳过“前列腺疾病”选项)。我知道,90% 的研究生和医生最后还是会用 Excel,因为顺手。 既然要用,就必须遵守以下 “数据录入铁律” 。遵守这些,统计师会把你供起来;不遵守,就是给自己挖坑。1. 一行一人,一列一指标(Tidy Data 原则)行(Row) :每一行代表一个观测对象(一个病人)。绝对不要把同一个病人的复查数据写在下一行!禁忌 : 绝对禁止合并单元格! 合并单元格是数据处理的噩梦。统计软件(SPSS/R/SAS)本质上是数学软件,它们喜欢数字。你要建立一个单独的 Sheet 叫“Codebook(编码本)” ,在里面记录:为什么? 如果你填汉字,很容易出现:“男”、“男性”、“男 ”(带空格)。在软件眼里,这是三个不同的性别。用数字 1 ,永远不会错。正确做法 :留空(什么都不填),或者填一个不可能出现的数字(如 -9 或 -999 ,并在编码本里注明)。错误做法 :填“未查”、“/”、“NA”、“?”。一旦这一列混入了汉字或符号,整列都会被当成字符型变量,无法计算平均值。第一行的标题,不要写“入院收缩压(mmHg)”,太长且含特殊符号。 请写: SBPadmission 或 sbpin 。 统计软件对中文变量名的支持往往不好,容易乱码。ID (编号)Age (年龄)Sex (1男2女)Group (1试验2对照)SBP (收缩压)Outcome (0活1死)001561114500026422132100345111280看着是不是很枯燥? 对,这就对了! 给人看的表格要花哨(合并、加粗、彩色);给机器算的表格要枯燥(纯数字、无格式)。查变量类型 :回顾第4天内容,确保血压录的是数值,而不是“高/低”。查单位统一 :肌酐有的化验单是 mg/dL,有的是 μmol/L。录入前必须换算统一,不要在数据库里混着填。查逻辑界值 :如果你用 Excel,可以利用【数据验证】功能。比如设置“收缩压”这一列,只能输入 50-300 之间的整数。如果你手滑输成 1400,Excel 会自动报错弹窗。这能救你的命!请看下面这个 Excel 录入片段,找出至少 3个 会导致后续无法分析的致命错误: