5章値の書き換え
手元の仮想デッキはもうゲームをできる状態になっているでしょうか。残念ながら、さすがにそこまではできあがっていません。デッキのポイントシステムと多くのカードゲームのポイントシステムにはズレがあります。たとえば、戦争ゲームやポーカーでは、エースはキングよりも高いポイントになります。1ではなく14になるのです。
ここでは、戦争、ハーツ、ブラックジャックの3種類のゲームに合わせてデッキのポイントシステムを3回変更します。これらのゲームは、データセット内の値の変更について、それぞれ少し異なることを教えてくれます。まず、操作できるデッキのコピーを作っておきましょう。
deck2 <- deck
こうすれば、とんでもないことが起きてしまったときにフォールバックできるきれいなデッキを残しておけます。
5.1 その場での値の変更
Rの記法を使えば、Rオブジェクト内の値を書き換えられます。まず書き換えたい値(1つでも複数でも)を表現します。次に、割り当て演算子の<-
を使って値を上書きします。Rは、元のオブジェクトの中の選択された値を書き換えます。それでは、実際に試してみましょう。
vec <- c(0, 0, 0, 0, 0, 0) vec ## 0 0 0 0 0 0
vec
の先頭の値は、次のようにして選択します。
vec[1] ## 0
そして、次のようにすればこの値を書き換えられます。
vec[1] <- 1000 vec ## 1000 0 0 0 0 0
新しい値の個数と選択された値の個数が同じであれば、複数の値を一度に書き換えることができます。
vec[c(1, 3, 5)] <- c(1, 1, 1) vec ## 1 0 1 0 1 0 vec[4:6] ...
Get RStudioではじめるRプログラミング入門 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.