Rでデータを読み込むときのメモ(列名の指定&変更)

色々なサイトでも紹介されている超基本的なことなのですが、自分なりにまとめてみました。
まず、こんな感じのデータを「成績.csv」として準備します。

番号,名前,国語,算数
1,佐藤,46,83
2,鈴木,50,46
3,高橋,55,56
4,田中,49,34
5,渡辺,57,60
6,伊藤,61,61
7,山本,38,75
8,中村,51,69
9,小林,60,52
10,加藤,56,80

それでは早速、「成績.csv」を読み込んでみます

&> setwd("C:/…/R練習") # ワークディレクトリを設定する、¥を/に置換する事
&> tab <- read.csv("成績.csv") # 成績.csvの内容をtabという変数に代入する

ここで変数名をtabとしていますが、seisekiでも何でもOKです。
また、タブ区切りテキストを読み込むときは「read.table」とします。

Rでどのように変数が読み込まれているかを確認するには、変数名を打ち込めばわかります。
↓では1行目を入力すると2行目以下が出力されます。

&> tab
     V1   V2   V3   V4
1  番号 名前 国語 算数
2     1 佐藤   46   83
(中略)
11   10 加藤   56   80

ここで、2行目(V1~V4)が列名で、2行目を見ると本来は列名にしたいはずの番号~算数もデータとして扱われてしまっています。
これでは困るので、テキストファイルにヘッダが有ることを明示して読み込みましょう。
一行目がヘッダであることを明示するにはread.csvの引数に「header=T」を付けてあげれば大丈夫です。

&> tab <- read.csv("成績.csv", header=T)
&> tab
   番号 名前 国語 算数
1     1 佐藤   46   83
2     2 鈴木   50   46
(中略)
10   10 加藤   56   80

また、データ数が多い場合にいちいちすべてのデータを表示させていたらきりが有りません。
データの列名だけを表示させたい場合にはnames関数を使用し、引数に変数名を指定すれば、列名を一覧表示させることができます。

&> names(tab)
[1] "番号" "名前" "国語" "算数"

ここで、列名「国語」だけにアクセスしたい場合には「変数名$列名」のように書けば大丈夫です。
読み込んだ「tab」のうち「国語」だけのベクトルを取り出すにはこんな感じで書きます。

&> kokugo <- tab$国語
&> kokugo
 [1] 46 50 55 49 57 61 38 51 60 56

国語の点数だけのベクトルが取り出せています。

ちなみに列名を変更したい場合は、names関数に列名のベクトルを代入してあげれば変更可能です。
※「c」というのはれっきとした関数名。c(val1, val2…, valn)でval1~valnのベクトル

&> names(tab) <- c("No", "Name", "Kokugo", "Sansuu")
&> names(tab)
[1] "No"     "Name"   "Kokugo" "Sansuu"

また、列の一部だけを変えたい場合は

&> names(tab)[3:4]<-c("kokugo","sansu")
&> names(tab)
[1] "番号"   "名前"   "kokugo" "sansu" 

この記事を書くに当たり、下記のサイトをはじめ数多くのサイトを参考にさせていただきました。
行列やデータフレームの列名・変数名の変更
[教えてGoo]R言語で読み込んだデータの列名の一部だけ変更したい