使用pedtools转换R系谱数据框为ped对象时的性别匹配错误排查
问题原因
pedtools包的as.ped()函数对系谱数据框的列名有固定默认规则:
fid列默认对应父亲IDmid列默认对应母亲ID
你现在的数据框里把母亲(287,女性)的ID存在了fid列,父亲(212,男性)的ID存在了mid列,函数按默认规则读取后,自然会把fid里的女性判定为父亲、mid里的男性判定为母亲,触发性别不匹配的报错。
两种解决办法
- 办法一:调整数据框列的内容或名称,让
fid存父亲ID,mid存母亲ID:# 交换fid和mid列的内容,并重命名确保列名正确 df <- df[, c("id", "mid", "fid", "sex")] colnames(df) <- c("id", "fid", "mid", "sex") # 重新转换为ped对象 ped_obj <- as.ped(df) - 办法二:调用
as.ped()时直接指定列映射,不用修改原数据:# 指定原mid列为父亲ID,原fid列为母亲ID ped_obj <- as.ped(df, fid = "mid", mid = "fid")
内容的提问来源于stack exchange,提问作者antecessor
相关产品推荐
相关产品推荐

