をプログラムとして見たときに注意・検討すべきところを学んでおきたい、ということで
を読んでいく。
前回
10. 入出力
は非常に多目的な多くの
機能を特徴としている。
10.1 キーボードとモニタへのアクセス
がキーボードとモニタにアクセスする関数として、たとえば
関数を扱う。
10.1.1 scan()関数の使用
を用いるとファイルやキーボードからベクトル(数値や文字)を読み込ませることができる。
scan("---.txt") # 数値を読み込むならば他の引数は無くてもよい scan("---.txt", what = "") # whatにモードを指定する。""は文字列 x <- scan("---.txt", what = "", seq = "\n") # seqに区切りの単位を与える\nは各行を文字列として読み込む scan("") # 第一引数を""とすると、キーボードから直接打ち込む
10.1.2 readline()の使用
キーボードから1行を読み込みたいときにはが便利である。
w <- readline() inits <- readline(""type your initials: )
10.1.3 画面への出力
画面への出力にはと
があり、出力の番号がつかない後者の方が見やすい。
print("abc") cat("abc") x <- 1:3 cat(x, "abc","de\n") # 何も指定しないと、引数同士を空白を挟んで出力する cat(x, "abc","de\n", sep = "") # 空白が不要であればsep = ""とする cat(x, "abc","de\n", sep = "\n") # 他の結合方法も指定できる
10.2 ファイルの読み書き
10.2.1 ファイルからのデータフレームや行列の読み込み
ファイル
を考える。これを読み込むのに以下のような方法がある。
z <- read.table("z", header = T) z
またファイル
を考える。これを読み込むのにを用いた以下の方法がある。他方で一般には
を用いる方法がある。
x <- matrix(scan("x"), nrow = 5, byrow = T) read.matrix <- function(filename){ as.matrix(read.table(filename)) }
10.2.2 テキストファイルの読み込み
テキストファイルに対して、で読み込むことができる。1行ずつ読み込むこともできれば、一度に全部読み込むことができる。
ファイル
に対して一度に全部読み込むには以下のようになる。
z1 <- readLine("z1") z1
10.2.3 コネクションの概要
コネクションは様々な種類の操作で使う基本的な仕組みを示す
用語である。コネクションは
またはその他のいくつかの
関数を呼び出して作成する。このような関数の一覧を見るには以下のコマンドを入力する。
?connection c <- file("z1",#r#) readLines(c,n=1) readLines(c,n=1) readLines(c,n=1) readLines(c,n=1)
10.2.4 URLを用いたリモートマシン上のファイルへのアクセス
および
といった
関数は、引数として
を取る。
10.2.5 ファイルへの書き込み
ファイルの書き込みにはたとえばがある。
# write.table()によるファイルへの書き込み kids <- c("Jack","Jill") ages <- c(12,10) d <- data.frame(kids,ages, stringsAsFactors = F) d write.table(d, "kds") # cat()による一部分の書き出し cat("abc\n",file = "u") cat("de\n",file = "u", append = T) # writeLines()による出力 c <- file("www","w") writeLines(c("abc","de","f"),c) close(c)
10.3 インターネットへのアクセス
のソケット機能を用いると、インターネットの
プロトコルにアクセスできる。