Skip to Content
RStudioではじめるRプログラミング入門
book

RStudioではじめるRプログラミング入門

by Garrett Grolemund, 大橋 真也, 長尾 高弘
March 2015
Beginner to intermediate
276 pages
3h 31m
Japanese
O'Reilly Japan, Inc.
Content preview from RStudioではじめるRプログラミング入門

8章S3

読者は、スロットマシンの出力が私の約束とは異なることに気付かれたかもしれません。私が言ったスロットマシンの出力は次のような形のものでした。

play()
## 0 0 DD
## $0

しかし、現在のマシンは、次のようにちょっと美しくない書式で表示しています。

play()
##  "0"  "0" "DD"
## 0

さらに、スロットマシンはシンボルの表示のために小技を使っています(playの中からprintを呼び出していることです)。そのため、次のように出力を保存すると、賞金だけしか保存されません。

one_play <- play()
## "B" "0" "B"

one_play
## 0

RのS3システムを使えば、この2つの問題を解決できます。

8.1 S3システム

S3は、Rに組み込まれているクラスシステムです。このシステムは、Rが異なるクラスのオブジェクトをどのように扱うかをコントロールしています。一部のR関数は、オブジェクトのS3クラスを問い合わせ、その応答に基づいて異なる動作をします。

print関数もそのような関数の1つです。数値ベクトルを表示しようとすると、printは数値を出力します。

num <- 1000000000
print(num)
## 1e+09

しかし、この数値にS3クラスの"POSIXct" "POSIXt"を与えると、printは時刻を表示します。

class(num) <- c("POSIXct", "POSIXt")
print(num)
## "2001-09-08 19:46:40 CST"

クラスを持つオブジェクトを使うと(今のように)、RのS3システムに行き当たります。S3の動作は最初は奇妙に感じられるかもしれませんが、慣れてしまえば簡単に予測できます。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

PythonとJavaScriptではじめるデータビジュアライゼーション

PythonとJavaScriptではじめるデータビジュアライゼーション

Kyran Dale, 嶋田 健志, 木下 哲也
プログラミングRust

プログラミングRust

Jim Blandy, Jason Orendorff, 中田 秀基
ユーザーストーリーマッピング

ユーザーストーリーマッピング

Jeff Patton, 川口 恭伸, 長尾 高弘

Publisher Resources

ISBN: 9784873117157Other