hyou <- data.frame(number = c(1,2,3,4),
name = c("A","B","C","D"))さて、表に名前をつけて見ましょう。
これで、名前のついた表がRの環境中に読み込まれました。 ここでは、View()と$の使い方を解説いたします。
23.1 View()
まず、View関数です。「v」iewではなくて、「V」iewです。「Vが大文字」です!この関数の中に、hyouを入れて実行すると、
View(hyou) こんな感じで作成した表を表示することができます。
23.2 $
ドルサインは、ベクトルを取り出したい時に便利です。
hyou <- data.frame(number = c(1,2,3,4),
name = c("Aさん","Bさん","Cさん","Dさん"))で作った表ですが、nameをベクトルとして取り出したい!となったときには、
hyou$name[1] "Aさん" "Bさん" "Cさん" "Dさん"
でとりだせます。
hyou$number[1] 1 2 3 4
とりだせましたね。
ところで、
hyou$name[1] "Aさん" "Bさん" "Cさん" "Dさん"
に下に、Levelsというのが出てます。
これは、数値型、文字列型に続く型(順番に特に意味はないです)Factor型です。他にも、いくつか型があるのですが、これは、後ほど解説します。
23.3 列の作成、置き換え
hyou$number[1] 1 2 3 4
でその列のベクトルを取り出せました。 実は、この$記号を利用すれば、新しい変数 を作成することも可能です。
hyou$new_numberNULL
存在していない列を取り出そうとすると、NULLという、「存在していない」ことを表す結果が返ってきます。ここに、
hyou$new_number <- c(100,200,300,400)取り出すのではなく、代入してあげると、
View(hyou)代入した結果が表示されました!
このように$記号をデータフレームと合わせて使うと新しい変数を作成することができます。また、すでに「ある」列名を指定して代入することも可能で、
次のコードを実行すると、何が起こるでしょう?
hyou$number <- c(100,200,300,400)
hyou$name <- "いえーい"
hyou number name new_number
1 100 いえーい 100
2 200 いえーい 200
3 300 いえーい 300
4 400 いえーい 400
こんな感じで、すでにある列にベクトルを放り込むことができます。 また、nameの方は、要素の長さ1のベクトルであるにもかかわらず、きちんと代入されています。これは、ベクトルは勝手に複製されるという話がここでも生きています。ただし、
hyou$name <- c("その1","その2")はOKでも、
hyou$name <- c("その1","その2","その3")Error in `$<-.data.frame`(`*tmp*`, name, value = c("その1", "その2", : replacement has 3 rows, data has 4
はトータルの行数の整数倍でないため、最初に実験したようにエラーがでます。