You need to enable JavaScript to run this app. R语言如何将shapiro.test()函数的输出结果写入文件
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何将shapiro.test()函数的输出结果写入文件

场景说明

现有药物给药前后的配对数据,需先检验差值的正态性,运行如下R代码:

set.seed(10)
before = rnorm(100)
set.seed(20)
after = rnorm(100, mean = 2)
d = after - before
shapiro.test(d)

控制台返回的检验结果如下:

Shapiro-Wilk normality test
data: d
W = 0.98326, p-value = 0.2363
将检验输出保存到文件的实现方法

R内置多种函数可实现该需求,常用方案有3种:

  • 方案1:使用sink()函数做输出重定向,操作最简单,会原封不动保留控制台输出格式
    # 开启输出重定向,指定保存的文件路径
    sink("shapiro检验结果.txt")
    # 运行检验,输出会直接写入目标文件
    shapiro.test(d)
    # 必须执行关闭重定向的操作,否则文件无法正常保存
    sink()
    
  • 方案2:使用capture.output()先捕获输出再写入,灵活性更高,可先修改内容再保存
    # 捕获检验的控制台输出为字符向量
    test_result <- capture.output(shapiro.test(d))
    # 写入文件
    writeLines(test_result, con = "shapiro检验结果.txt")
    
  • 方案3:提取检验对象的指标自定义组织输出,适合需要统一输出格式的场景
    # 将检验结果保存为对象
    res <- shapiro.test(d)
    # 自定义输出内容,可按需调整精度、补充说明信息
    output_content <- c(
      "Shapiro-Wilk正态性检验结果",
      paste("检验数据: ", deparse(res$data.name)),
      paste("统计量W = ", round(res$statistic, 5), ",p值 = ", round(res$p.value, 4))
    )
    # 写入文件
    writeLines(output_content, con = "shapiro检验结果.txt")
    

内容的提问来源于stack exchange,提问作者Anarachy_rage8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 01:54:03