10. オブジェクトの表示


オブジェクト名(変数名)だけを入力してもオブジェクトの中身は表示されるが,以下に紹介する関数を用いることで,出力形式をカスタマイズすることが出来る.

オブジェクトを表示する:print()

オブジェクトを表示する基本的な関数は print() である.

 
 x <- "one"
 print(x)            # "" ありで出力

[1] "one" 

 print(x, quote=F)   # "" なしで出力

[1] one

関数 page() で別ウインドウにオブジェクトの値を表示することも出来る.これは長いデータなどを表示する場合に有用である.

文字列を表示する:cat()

文字列を表示する基本的な関数は cat() である.関数 print() で文字列を表示すると前後にダブルクオート "" がつけられるが,cat() で表示すれはダブルクオート "" はつかない.文字列中で \\ ,\t ,\n ,\f (もしくは \\ ,\t ,\n ,\f )を用いると,それぞれ \ マーク,タブ,改行,改ページ文字を出力する.

 
 cat("cd C:\\Document and Settings\\usr\\ \n")  # 作業ディレクトリ指定の際に有用

cd C:\Document and Settings\usr 

 \ で始まる 3 桁の 8 進数を書けば,文字列中に文字コードを直接記述することも出来る.

 文字列でないオブジェクトは文字列に強制変換される.

 cat() は最後に改行を付けないので,改行したければ文字列中に改行記号( \n )を含める必要がある.

書式付きでオブジェクトを表示する:sprintf()

書式付きでオブジェクトを表示するには関数 sprintf() を使う.他にも,有効桁数を決める関数 formatC() などがある.

命令

機能

sprintf("%5.1f", 実数)

実数を「■■■.■」(整数部分3桁,小数点1つ,小数部分1桁)で表記する.小数部分がはみ出た場合は丸められ,整数部分が足りない場合はスペースで補われる.

sprintf("%f", 実数)

f は小数点以下の桁数を指定する.デフォルトは6.

sprintf("%-10f", 実数)

左詰にする .余った部分は空白で埋める.% と f の間に + や 0 などの文字を入れることも出来る.

sprintf("%3d", as.integer(整数))

整数部分3桁で表記する.整数部分が足りない場合はスペースで補われる.「%3i」も同様.

sprintf("%e", 実数)

指数表示(浮動小数点表記)する.亜種として "g" や "G" が指定できる.

sprintf("%s", as.character(文字))

数値を文字として出力する場合は as.character() で変換する.

フォーマットを "%5.0f" とした場合は,実数を整数部分5桁で表記する.整数部分が足りない場合はスペースで補われ,小数部分がある場合は丸められる.

 
 sprintf("%5.0f", 1234.5678)

[1] " 1235"

オブジェクトの内容を情報付きで表示する:str()

オブジェクトの内容を情報付きで簡潔に表示する場合は関数 str() を用いる.データの要約が欲しい場合は関数 summary() を用いる.

 
 str(x)

chr "12345"

 summary(x)

Length     Class      Mode 
     1 character character 

オブジェクトにコメントを残す:comment()

オブジェクトに備忘録的にコメントを残しておく場合は関数 comment() を用いる.付け加えたコメントは普通の計算時には表示されない.コメントを表示する場合は関数 comment() や str() を使う.

 
 x <- "Washi"
 comment(x) <- "my handle name"
 x

[1] "Washi"

 comment(x)

[1] "my handle name"

出力をファイルに送る:sink()

通常はコマンドライン上に表示される R の出力をファイルに送る場合は関数 sink("ファイルのパス") を実行する.似たような関数に dump(),dget(),dput(),capture.output() がある.

 
 sink("output.txt")  # 作業ディレクトリの中に output.txt が出来る 

出力をファイルに送るのを解除するには以下の様に入力すればよい.

 
 sink()