再「R」学習:日付型データ

2013-11-04 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
2、3、1、1、0、 0、1、0、0、1(38)で、換算ポイント 56pt 。
・-・ - -・

さて、本文。

昨年(2012-09-18)の記事:
R 学習:plotグラフのX軸、日付目盛で
で書いているが、・・・

Rのグラフで、X軸目盛を日付にすること。
について
改めて、調べてみた。

「実に馬鹿だな」なるブログに、
Rの日付」があった。
  どうもRでグラフを描いていると日付のX軸がうまくいかなくて
  イライラするんだけど、ここにやりかたが載っていた。感謝。
  一週間おきに目盛りを一つ書く場合はこんな風。
  ・・・・・

そこで、リンク先を見た。
ブログ「空飛ぶカボチャ」の記事:
時系列データのプロット[R]・・・
  Rには日付・時間データをオブジェクトとして扱うための
  "POSIXlt"、"POSIXct"というクラスがある。
  例えば、Sys.time()関数を使うと現在の時間が
  "POSIXct"オブジェクトとして返ってくる。
  ・・・・・
ですね。


他には、「Leihcrev's memo」の中に、
研究編 2 日付・時刻に関するデータ構造と演算
があった。

このサイトは、
「ソフトウェア技術的なメモを中心に書いています。」
と云うことで、
」へのリンクページ:
  統計解析向けプログラミング言語 R についてのページ。
  まったく R について無知な状態から順次習得していく様を記す。
  ・・・・・
の中の一ページ「研究編 2」ですね。


  研究編 2 日付・時刻に関するデータ構造と演算

  大抵の言語で、日付・時刻に関するデータ構造と演算の事情は、
  歴史的経緯と互換性の影響で混沌としている。
  R もやはりややこしい状況にあるようだ。
  R には、日付・時刻のためのデータ構造としていくつかのクラスが
  用意されているので、それぞれの機能を紹介したいと思う。

との書き出しで、

  Date クラス
 Date クラスは、日付を保持するためのクラスである。
 内部的には要素数 1 の数値ベクトルで、
 1970年1月1日を起点 (0) とした日数を持っている。
 ・・・・・

  POSIXt クラス、POSIXct クラス、POSIXlt クラス
 これらは、POSIX 仕様の日付・時刻データ構造に相当するクラスである。
 POSIXct は POSIX/C99 の time_t 型に対応し、
 POSIXlt は struct tm 型に対応するものである。
 この2つのクラスの共通の親クラスとして POSIXt が定義されている。
 POSIXct の内部構造は、1970年1月1日0時0分0秒 (GMT) からの
 通算秒数を表す数値と、タイムゾーンを示す属性 tzone となっている。
 Date と同様 as.POSIXct() により生成できる。
 C の time_t 型は long 型であることが多く、秒単位の精度となるが、
 R では後述の例のようにマイクロ秒の精度まで保持できる。
 ・・・・・

  difftime クラス
 difftime は、2つの日付・時刻間の差を保持するためのクラスである。
 直接 difftime オブジェクトを生成することもできるが、
 - 演算子で Date 同士または POSIXt 同士の差をとった結果として
 生成されたものを見掛けることの方が多いかと思う。
 ・・・・・

  date クラス
 date パッケージによって提供されているクラスである。
 内部的には1970年1月1日を起点とする相対日数を示す数値ベクトルである。
 Date クラスはネイティブ関数を活用して駆動するが、
 date は純粋に R 上で駆動するようになっている。
 Date の方が高機能なので、あまり使う必要はないだろう。

  chron クラス、dates クラス、times クラス
 chron パッケージによって提供されているクラスである。
 内部的には、相対日数の数値ベクトルが本体で、起点の年月日を示す
 属性 origin (month, day, year の3要素のベクトル) や、
 書式を示す属性 format を持っている。
 times は時間を表すクラスで、1日を1とした数値が本体になっており、
 origin は持っていない。
 dates は日付を表すクラスで、origin を起点とした相対日数を持っている。
 chron は日時を表すクラスで、やはり origin を起点とした
 相対日数を持っており、
 format は日付部分と時刻部分の2つの書式文字列をベクトルで持っている。

  POSIXct, POSIXlt クラスはネイティブ関数を使用して動作しているが、
  こちらは純粋に R 上で駆動するようになっている。
  閏秒やサマータイムの考慮などはないようだが、
  is.holiday() という関数があり、.Holidays の内容に応じて
  休日判定をさせることができるようだ。
  とはいえ、こちらもあまり使うことはないだろう。

以上。
メモさせて頂きました。



さらなる検索の結果、
「XXXannex」の「POSIXctとPOSIXltの違い
  知ってる人は知ってるけど、マニュアルにも明言されていない
  POSIXctとPOSIXltの違い。

  "POSIXct" is more convenient for including in data frames,
   and "POSIXlt" is closer to human-readable forms.

  ・・・って言われてもなあ。
  結論から言うと、POSIXctはエポック秒、
  POSIXltは日付の各項目を名前つきリストで持っている
  という形式になっているようです。
  用途に応じて使い分けですね。



そして、
忘れていた「RjpWiki」(忘れちゃいけなかった)
日付、時間関数Tips大全i
ですね。
  Rには日付(date)オブジェクトを表すクラス "Date" と,
  日付時分秒(date-time)オブジェクトを
  表すクラス "POSIXlt", "POSIXct" がある.

  クラス "Date"
 クラス "Date" は date オブジェクト(年月日)を表し,
 1970-01-01 以来の経過日数(負の値は過去に遡る)で表現される.
 内部的には実数で表現されるが,表示の際は整数値とされる.
 日数との加減算,比較演算が可能である.
 format(), plot(), hist(), seq(), cut(), round() 関数は
 "Date" クラス用のメソッド関数を持つ.
 as.Date() は数値を "Date" オブジェクトに変換する.
 weekdays(), months() はそれぞれ曜日と月を返す.
 ・・・・・

  クラス "POSIXct", "POSIXlt","POSIXt"
 年月日時分秒を表すクラスには "POSIXct" (1970年元旦からの符号付き
 経過秒)と,名前ラベル
 ・・・・・
 を持つ文字列リストである "POSIXlt" の2種類がある.
 それぞれ ANSI C の "calendar time" (time-t データタイプ) と
 "local time" (struct tm データタイプ) に基づき,
 名前もそれらに由来する.クラス "POSIXt" は両者を含むクラスである.
 "POSIXct" オブジェクトはデータフレーム中で使うのにより便利であるが,
 "POSIXlt" オブジェクトはより可読性が高い.
 ・・・・・

  時間差 difftime()
 関数 difftime() は二つのdateもしくはdate-timeオブジェクトの
 差分を計算する. 結果はクラス "difftime",
 時間単位を表す属性 units (units()関数で操作できる)を持つ.
 date-timeオブジェクト同士の差はこの関数を
 オプション units="auto" で呼び出す.
 関数 as.difftime() は数値もしくは
 時間差の文字列表現を "difftime" オブジェクトに変換する.
 ・・・・・

  date-timeクラスオブジェクトと文字列間の変換
 ・・・・・
  ジュリアン通日 (Julian date)
 ・・・・・
  タイムゾーン
 ・・・・・
  連続する日付の生成
 ・・・・・
  日付・時間用のパッケージ
 ・・・・・

と続いている。



こんなに、学習材料があったんダ。


さらなる「R」の学習です。



見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


131026
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク