hack のためのネタ帳, etc,,,

表示

print() または cat() を用いる。
print() は文字列がダブルクオーテーションで囲まれるが、cat() は囲まれない。
print() はある程度 inspect されて human readable な値が出力されるが、cat() はどちらかと言うと生の値が出力される。
また cat() は list や POSIXlt 等、出力出来ないクラスが存在する。

型変換

as.character() を用いる。

フォーマット

sprintf() が使える。

結合

paste() を用いる。
> paste(0:4, 5:9, collapse="|", sep=",")
[1] "0,5|1,6|2,7|3,8|4,9"
見ての通りだが、
まず、各 vector の同じ index に位置する要素が sep で結合され、一つの vector にまとめられ、
次に、一つにまとめられた vector の要素が collapse で結合される。

従って、パラメータとして vector が一つだけ与えらた場合、sep は意味を成さない。
> paste(0:4, collapse="|", sep=",")
[1] "0|1|2|3|4"
これは JavaScript の Array.prototype.join() や Ruby の Array#join 相当と言える。

逆に、要素が一つだけのパラメータが複数与えられた場合、collapse は意味を成さない。
> paste(0, 1, 2, 3, 4, collapse="|", sep=",")
[1] "0,1,2,3,4"

分割

strsplit() を用いる。
list が返って来るので、unlist() か [[1]] で vector を得ると良い。
> strsplit("1,2,3,4",",")
[[1]]
[1] "1" "2" "3" "4"
> unlist(strsplit("1,2,3,4",","))
[1] "1" "2" "3" "4"
> strsplit("1,2,3,4",",")[[1]]
[1] "1" "2" "3" "4"
タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です