理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

テキストファイルに検定結果を出力

テキストファイルに検定結果を出力
投稿日2017.11.14

r-de-r様からコメントいただきましたので修正しております
素直に感動しております

テキスト形式のファイルに検定結果を書き込む練習をします
sprintf:書式指定変換した出力を文字列に格納
cat:文字列を表示する基本的な関数, file=でファイルに書き込み

備忘録
\n 改行
%.3f 小数点3桁まで出力
append = F:ファイルに上書き
append = T:ファイルに追加

Rのサンプルirisを使います

x <- iris$Sepal.Length[51:75]
y <- iris$Petal.Length[101:125]
#noteというファイルに、xとyの平均を書き込みます
cat("x平均", mean(x), "y平均", mean(y), file = "note.txt") #noteというファイル名

f:id:yoshida931:20170908160200j:plain

sprintfの使い方
xの平均を小数点以下1桁まで、項目名「Xの平均」と付いた文字列にして取り出します

sprintf("xの平均 %.1f", mean(x))
"xの平均 6.0"

t検定を実施して、strで中身を確認してみます

t <- t.test(x,y,var.equal = T)
str(t)

Two Sample t-test

data: x and y
t = 2.1954, df = 48, p-value = 0.033
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.03131358 0.71268642
sample estimates:
mean of x mean of y
6.012 5.640


List of 9
$ statistic : Named num 2.2
..- attr(*, "names")= chr "t"
$ parameter : Named num 48
..- attr(*, "names")= chr "df"
$ p.value : num 0.033
$ conf.int : atomic [1:2] 0.0313 0.7127
..- attr(*, "conf.level")= num 0.95

t値、p値、95%信頼区間のみ取り出してテキストファイル「note」に書き出してみます

tv <- sprintf("t値 %.4f\n", t[[1]]) 
pv <- sprintf("p値 %.4f\n", t[[3]]) 
ci <- sprintf("95%信頼区間 %.4f %.4f\n", t[[4]][1], t[[4]][2])     #ここがポイントです(%を小文字にする場合には%%と書きます)
cat(tv,pv, ci, sep="",file = "note.txt")

catのデフォルトでsep=" "となっているので改行した後にスペースが入るそうです.スペースなし(sep="")にして書き直しました.無駄なスペースが無くなってスッキリしました.

f:id:yoshida931:20171114133508j:plain:w300

参考と引用 Rプログラム (TAKENAKA's Web Page)