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
相关产品推荐
相关产品推荐

