餡子付゛録゛

ソフトウェア開発ツールの便利な使い方を紹介。

Rでテキストファイルを読み込んで分解

RでCSVファイルを上手く読み込めないときは、read.tableにあわせてテキスト・ファイルを書き換えた方が手軽な気がしますが、それが都合で出来ないときは、テキスト・ファイルとしてCSVファイルを読み込んでから、カンマで分離することもできます。

con <- file("example.csv", "r", blocking = FALSE)
lines <- readLines(con)
close(con)
lst <- strsplit(lines, ",")
row <- 1
col <- 1
sprintf("%d行%d列 %s", row, col, lst[[row]][col])
# as.numeric()で数値型に直すなど、適時型変換が必要

なお、strsplitは正規表現が使えます。
特定の列のデータをベクトルにしたい場合は以下のようにすると手軽です。

sapply(lst, "[[", 1) # 1列目を取り出す