gzcy1002_ 2024-03-22 10:33 采纳率: 50%
浏览 92
已结题

关于#r语言#的问题:同样的R代码、数据

同样的R代码、数据,为什么结果不一样?我的操作是哪里有问题?要怎么改?

img

img

img

img


然后别人的结果(变量mRS)是下图:

img


我的是这样,我的不对啊,怎么办

img

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-22 10:33
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    在R语言中,当你遇到同样的代码和数据得到不同结果的情况时,通常是由以下原因导致的:

    1. 随机性:如果你在代码中使用了随机数生成函数(例如set.seed()之前没有设定固定种子),每次运行结果会有所不同。

      在你的代码中,你设置了随机数种子:

      set.seed(123)
      

      这确保了数据集拆分的可重复性。如果其他人没有设置或设置了不同的随机种子,训练集和测试集会有差异,进而影响后续分析结果。

    2. 数据版本问题:尽管你说是同样的数据,但可能存在数据源的不同版本或者导入过程中数据有无遗漏、顺序变化等情况。

    3. 代码执行顺序错误:检查图中的代码是否严格按照顺序执行,是否存在未展示的部分或跳过了某些步骤。

    4. 变量名或引用错误:仔细检查变量名是否有拼写错误或大小写不一致。比如,图2中的table(testssap)可能是错的,应为table(test$SAP)

    5. 数据预处理差异:因子化分类变量时,确保所有类别都被正确识别和处理,且顺序一致。此外,将BI转化为数值型变量时,需确认转化前后无异常值产生。

    6. 代码片段缺失:从你提供的信息看,存在部分代码片段可能被截断,如第80行的代码似乎不完整,这可能会导致运行错误或不一致的结果。

    解决办法:

    • 确保在每一次实验前都用相同的随机种子初始化。
    • 检查并核实数据源的一致性,保证加载的是同一份数据。
    • 逐行检查代码,尤其是涉及到数据操作和转换的地方,确保没有逻辑错误或变量引用错误。
    • 若有可能,请提供完整的代码以供进一步排查。

    针对你给出的代码段,我注意到一个潜在问题是在因子化分类变量时,最后一行代码应该补全括号:

    nn1[vars] <- lapply(nn1[vars], factor)
    

    同时,在导出csv文件时,也存在语法错误,需要加上逗号来闭合write.csv()函数的参数列表:

    write.csv(train, file = "train.csv")
    write.csv(test, file = "test.csv")
    

    请根据上述建议检查并修正你的代码,再观察结果是否一致。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 创建了问题 3月22日