Rの結果をテキストファイルに出力

指定している作業フォルダにテキスト形式のファイルに検定結果を書き込む練習をします

フォルダの指定方法について

Rのサンプルirisを使います
R
x <- iris$Sepal.Length[51:75]
y <- iris$Petal.Length[101:125]

#記入例というテキストファイルに、xとyの平均を書き込みます
cat(
    "x平均", mean(x),
    "y平均", mean(y),
    file = "記入例.txt", #ファイル名を記入する部分
    append = F
)

cat:文字列を表示する基本的な関数(file=でファイルに書き込み)
append = F :ファイルに上書き
append = T :ファイルに追加

このようなテキストファイル「記入例」が作業フォルダにできていれば成功です

sprintfの使い方

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

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

sprintf:書式指定変換した出力を文字列に格納する関数
%.1f:小数点1桁まで出力

> sprintf("xの平均 %.1f", mean(x))
[1] "xの平均 6.0"
t検定を実施して、strで中身を確認してみます
R
t <- t.test(x, y, var.equal = T)
str(t)
> str(t)
List of 10
 $ statistic  : Named num 2.2
  ..- attr(*, "names")= chr "t"
 $ parameter  : Named num 48
  ..- attr(*, "names")= chr "df"
 $ p.value    : num 0.033
 $ conf.int   : num [1:2] 0.0313 0.7127
  ..- attr(*, "conf.level")= num 0.95
 $ estimate   : Named num [1:2] 6.01 5.64
  ..- attr(*, "names")= chr [1:2] "mean of x" "mean of y"
 $ null.value : Named num 0
  ..- attr(*, "names")= chr "difference in means"
 $ stderr     : num 0.169
 $ alternative: chr "two.sided"
 $ method     : chr " Two Sample t-test"
 $ data.name  : chr "x and y"
 - attr(*, "class")= chr "htest"

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

R
#t値
tv <- sprintf(
    "t値 %.4f \n",
    t$stat
) 

#p値
pv <- sprintf(
    "p値 %.4f \n",
    t$p.val
) 

#95%信頼区間
ci <- sprintf(
    "95%信頼区間 %.4f %.4f", 
    t$conf[1], 
    t$conf[2]
) 

#テキストファイルに出力
cat(
    tv, pv, ci,
    sep = "",
    file = "記入例.txt"
)

\n :テキスト入力後に改行を指定する
%.4f :小数点4桁まで出力
catのデフォルトでsep=” “となっているので改行した後にスペースが入るそうです。スペースなし(sep=””)にして書き直しました。無駄なスペースが無くなってスッキリしました。

作業フォルダに作成したファイル「記入例」が、このように上書きされたら成功です

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください

タイトルとURLをコピーしました