R言語(ファイル読み込み1)

R言語でファイル読み込みします。

まずR起動前に、読み込み用のサンプルファイルを作ります。

takk@deb9:~/r$ seq 25 | pr -t5J | tee sample1.txt
1       6       11      16      21
2       7       12      17      22
3       8       13      18      23
4       9       14      19      24
5       10      15      20      25
takk@deb9:~/r$

Rを起動。

takk@deb9:~/r$R

(省略)

>

ファイルを読み込んでみます。

> a=scan("sample1.txt")
Read 25 items
> a
 [1]  1  6 11 16 21  2  7 12 17 22  3  8 13 18 23  4  9 14 19 24  5 10 15 20 25
>

なっ何でしょうか。てっきりテキストファイルをそのまま読み込んで文字列で表示してくれると思ってましたが、違うようです。
ベクトルなんでしょうか。

> is.vector(a)
[1] TRUE

ベクトルでした。各要素に直接アクセスして元々の1~25という数を取り出せますね。

> a[2]
[1] 6
>

数値ではなく元ファイルのように文字列で読み込むにはどうするんでしょうか。
what引数にcharacter()を指定します。

> scan("sample1.txt",what=character())
Read 25 items
 [1] "1"  "6"  "11" "16" "21" "2"  "7"  "12" "17" "22" "3"  "8"  "13" "18" "23"
[16] "4"  "9"  "14" "19" "24" "5"  "10" "15" "20" "25"
>

文字列のベクトルになりました。

さらに、セパレータを改行にします。 sep=”\n”です。

> scan("sample1.txt",what=character(),sep="\n")
Read 5 items
[1] "1\t6\t11\t16\t21"  "2\t7\t12\t17\t22"  "3\t8\t13\t18\t23"
[4] "4\t9\t14\t19\t24"  "5\t10\t15\t20\t25"
>

これで元ファイルと同じ形ですね。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA