Rでデータの読み書き(CSV編)

こんばんは。namakemonoです。

今日はRでCSVファイルの読み書きについて記載します。
CSVファイルってよく使うので、覚えておいたほうがいいですよ。

ディレクトリの変更

ディレクトリ=フォルダです。
ファイルの格納先を指定します。
この指定したディレクトリにあるファイルを読み込んだり、ディレクトリにファイルを出力したりします。


「ファイル>ディレクトリの変更」を押下し、任意のディレクトリを指定します。
053

CSVファイルへの書き込み

ファイルへの書き込みは、「write」関数、「write.table」関数を利用します。

write(iris[[1]],file=”test.csv”,sep=”,”)


write.table(iris[[1]],file=”test2.csv”,sep=”,”)

write関数はリスト形式で保存します。
write.table関数は表形式で保存します。
オプションとして以下のものを設定できます。

引数 機能
file ファイル名
sep 区切り文字。「”,”」でカンマ区切り、「”\t”」でタブ区切りになります。
fileencoding ファイルのエンコードを指定。「euc-jp」, 「shift-jis」, 「utf-8」などを指定できます。



それぞれ、以下のような内容になります。


write関数で出力

5.1,4.9,4.7,4.6,5
5.4,4.6,5,4.4,4.9
5.4,4.8,4.8,4.3,5.8
5.7,5.4,5.1,5.7,5.1
5.4,5.1,4.6,5.1,4.8
5,5,5.2,5.2,4.7
4.8,5.4,5.2,5.5,4.9
5,5.5,4.9,4.4,5.1
5,4.5,4.4,5,5.1
4.8,5.1,4.6,5.3,5
7,6.4,6.9,5.5,6.5
5.7,6.3,4.9,6.6,5.2
5,5.9,6,6.1,5.6
6.7,5.6,5.8,6.2,5.6
5.9,6.1,6.3,6.1,6.4
6.6,6.8,6.7,6,5.7
5.5,5.5,5.8,6,5.4
6,6.7,6.3,5.6,5.5
5.5,6.1,5.8,5,5.6
5.7,5.7,6.2,5.1,5.7
6.3,5.8,7.1,6.3,6.5
7.6,4.9,7.3,6.7,7.2
6.5,6.4,6.8,5.7,5.8
6.4,6.5,7.7,7.7,6
6.9,5.6,7.7,6.3,6.7
7.2,6.2,6.1,6.4,7.2
7.4,7.9,6.4,6.3,6.1
7.7,6.3,6.4,6,6.9
6.7,6.9,5.8,6.8,6.7
6.7,6.3,6.5,6.2,5.9



write.tableで出力

“x”
“1”,5.1
“2”,4.9
“3”,4.7
“4”,4.6
“5”,5
“6”,5.4
“7”,4.6
“8”,5
“9”,4.4
“10”,4.9
“11”,5.4
“12”,4.8
“13”,4.8
“14”,4.3
“15”,5.8
“16”,5.7
“17”,5.4
“18”,5.1
“19”,5.7
“20”,5.1
“21”,5.4
“22”,5.1
“23”,4.6
“24”,5.1
“25”,4.8
“26”,5
“27”,5
“28”,5.2
“29”,5.2
“30”,4.7
“31”,4.8
“32”,5.4
“33”,5.2
“34”,5.5
“35”,4.9
“36”,5
“37”,5.5
“38”,4.9
“39”,4.4
“40”,5.1
“41”,5
“42”,4.5
“43”,4.4
“44”,5
“45”,5.1
“46”,4.8
“47”,5.1
“48”,4.6
“49”,5.3
“50”,5
“51”,7
“52”,6.4
“53”,6.9
“54”,5.5
“55”,6.5
“56”,5.7
“57”,6.3
“58”,4.9
“59”,6.6
“60”,5.2
“61”,5
“62”,5.9
“63”,6
“64”,6.1
“65”,5.6
“66”,6.7
“67”,5.6
“68”,5.8
“69”,6.2
“70”,5.6
“71”,5.9
“72”,6.1
“73”,6.3
“74”,6.1
“75”,6.4
“76”,6.6
“77”,6.8
“78”,6.7
“79”,6
“80”,5.7
“81”,5.5
“82”,5.5
“83”,5.8
“84”,6
“85”,5.4
“86”,6
“87”,6.7
“88”,6.3
“89”,5.6
“90”,5.5
“91”,5.5
“92”,6.1
“93”,5.8
“94”,5
“95”,5.6
“96”,5.7
“97”,5.7
“98”,6.2
“99”,5.1
“100”,5.7
“101”,6.3
“102”,5.8
“103”,7.1
“104”,6.3
“105”,6.5
“106”,7.6
“107”,4.9
“108”,7.3
“109”,6.7
“110”,7.2
“111”,6.5
“112”,6.4
“113”,6.8
“114”,5.7
“115”,5.8
“116”,6.4
“117”,6.5
“118”,7.7
“119”,7.7
“120”,6
“121”,6.9
“122”,5.6
“123”,7.7
“124”,6.3
“125”,6.7
“126”,7.2
“127”,6.2
“128”,6.1
“129”,6.4
“130”,7.2
“131”,7.4
“132”,7.9
“133”,6.4
“134”,6.3
“135”,6.1
“136”,7.7
“137”,6.3
“138”,6.4
“139”,6
“140”,6.9
“141”,6.7
“142”,6.9
“143”,5.8
“144”,6.8
“145”,6.7
“146”,6.7
“147”,6.3
“148”,6.5
“149”,6.2
“150”,5.9

ファイルの読み取り

ファイルを読み込む際は「read.table」関数を利用します。
以下のオプションを指定できます。

引数 機能
sep = "" データとデータの区切り文字を指定する。
skip = 0 最初の行 から読み飛ばす行数を指定する.指定しない場合はファイルの
1 行目から読む。
nrows = -1 何行目まで読むかを指定する。指定しない場合(負の値の場合)はファイルの終わりまで読む)。
header = F 「1行目は列名が書かれている」か否かを指定する。列名が書かれている場合で,Fを指定すると不具合が生じる。
comment.char コメント行を表す記号(デフォルトは \# )を指定する。
row.names=NULL 1 から始まる番号が行名として生成される。
row.names="列名" 指定した列のデータが行名として使われる.使われた列はデータフレームの変量としては取り除かれることになる。
row.names=列番号 上記と同じ。
row.names=文字型ベクトル ベクトルの各要素が行名となる.ただし行数と同じ長さのベクトルを指定する。

先ほどwrite.table関数で出力したtest2.csvを読み込んでみましょう。



> x<-read.table("test2.csv") > x
x
1 ,5.1
2 ,4.9
3 ,4.7
4 ,4.6
5 ,5
6 ,5.4
7 ,4.6
8 ,5
9 ,4.4
10 ,4.9
11 ,5.4
12 ,4.8
13 ,4.8
14 ,4.3
15 ,5.8
16 ,5.7
17 ,5.4
18 ,5.1
19 ,5.7
20 ,5.1
21 ,5.4
22 ,5.1
23 ,4.6
24 ,5.1
25 ,4.8
26 ,5
27 ,5
28 ,5.2
29 ,5.2
30 ,4.7
31 ,4.8
32 ,5.4
33 ,5.2
34 ,5.5
35 ,4.9
36 ,5
37 ,5.5
38 ,4.9
39 ,4.4
40 ,5.1
41 ,5
42 ,4.5
43 ,4.4
44 ,5
45 ,5.1
46 ,4.8
47 ,5.1
48 ,4.6
49 ,5.3
50 ,5
51 ,7
52 ,6.4
53 ,6.9
54 ,5.5
55 ,6.5
56 ,5.7
57 ,6.3
58 ,4.9
59 ,6.6
60 ,5.2
61 ,5
62 ,5.9
63 ,6
64 ,6.1
65 ,5.6
66 ,6.7
67 ,5.6
68 ,5.8
69 ,6.2
70 ,5.6
71 ,5.9
72 ,6.1
73 ,6.3
74 ,6.1
75 ,6.4
76 ,6.6
77 ,6.8
78 ,6.7
79 ,6
80 ,5.7
81 ,5.5
82 ,5.5
83 ,5.8
84 ,6
85 ,5.4
86 ,6
87 ,6.7
88 ,6.3
89 ,5.6
90 ,5.5
91 ,5.5
92 ,6.1
93 ,5.8
94 ,5
95 ,5.6
96 ,5.7
97 ,5.7
98 ,6.2
99 ,5.1
100 ,5.7
101 ,6.3
102 ,5.8
103 ,7.1
104 ,6.3
105 ,6.5
106 ,7.6
107 ,4.9
108 ,7.3
109 ,6.7
110 ,7.2
111 ,6.5
112 ,6.4
113 ,6.8
114 ,5.7
115 ,5.8
116 ,6.4
117 ,6.5
118 ,7.7
119 ,7.7
120 ,6
121 ,6.9
122 ,5.6
123 ,7.7
124 ,6.3
125 ,6.7
126 ,7.2
127 ,6.2
128 ,6.1
129 ,6.4
130 ,7.2
131 ,7.4
132 ,7.9
133 ,6.4
134 ,6.3
135 ,6.1
136 ,7.7
137 ,6.3
138 ,6.4
139 ,6
140 ,6.9
141 ,6.7
142 ,6.9
143 ,5.8
144 ,6.8
145 ,6.7
146 ,6.7
147 ,6.3
148 ,6.5
149 ,6.2
150 ,5.9



読みにくいですね。
csvを読み込む際は、「read.csv」関数を利用したほうが便利です。



> x<-read.csv("test2.csv") > x
x
1 5.1
2 4.9
3 4.7
4 4.6
5 5.0
6 5.4
7 4.6
8 5.0
9 4.4
10 4.9
11 5.4
12 4.8
13 4.8
14 4.3
15 5.8
16 5.7
17 5.4
18 5.1
19 5.7
20 5.1
21 5.4
22 5.1
23 4.6
24 5.1
25 4.8
26 5.0
27 5.0
28 5.2
29 5.2
30 4.7
31 4.8
32 5.4
33 5.2
34 5.5
35 4.9
36 5.0
37 5.5
38 4.9
39 4.4
40 5.1
41 5.0
42 4.5
43 4.4
44 5.0
45 5.1
46 4.8
47 5.1
48 4.6
49 5.3
50 5.0
51 7.0
52 6.4
53 6.9
54 5.5
55 6.5
56 5.7
57 6.3
58 4.9
59 6.6
60 5.2
61 5.0
62 5.9
63 6.0
64 6.1
65 5.6
66 6.7
67 5.6
68 5.8
69 6.2
70 5.6
71 5.9
72 6.1
73 6.3
74 6.1
75 6.4
76 6.6
77 6.8
78 6.7
79 6.0
80 5.7
81 5.5
82 5.5
83 5.8
84 6.0
85 5.4
86 6.0
87 6.7
88 6.3
89 5.6
90 5.5
91 5.5
92 6.1
93 5.8
94 5.0
95 5.6
96 5.7
97 5.7
98 6.2
99 5.1
100 5.7
101 6.3
102 5.8
103 7.1
104 6.3
105 6.5
106 7.6
107 4.9
108 7.3
109 6.7
110 7.2
111 6.5
112 6.4
113 6.8
114 5.7
115 5.8
116 6.4
117 6.5
118 7.7
119 7.7
120 6.0
121 6.9
122 5.6
123 7.7
124 6.3
125 6.7
126 7.2
127 6.2
128 6.1
129 6.4
130 7.2
131 7.4
132 7.9
133 6.4
134 6.3
135 6.1
136 7.7
137 6.3
138 6.4
139 6.0
140 6.9
141 6.7
142 6.9
143 5.8
144 6.8
145 6.7
146 6.7
147 6.3
148 6.5
149 6.2
150 5.9


最後に

ファイルの読み書きは、実際に分析を行うとよく使うようになると思います。
慣れるまでは大変ですが、ぜひ活用してみましょう!

ではでは


コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA