サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
tips-r.blogspot.com
郵便番号がどんな感じで割り当てられているか、地図上で確認したかったんです。 GPSで取った地点情報がプライバシーに配慮云々で郵便番号になっていた、なんてことがありまして、その粒度がどんなものか確認したかったってのが発端です。 検索してみても無償のものは意外に見つからないもので、国際航業さんが売っていたりします↓ PAREA-Zip郵便番号界 | 国際航業株式会社 ノースリーブな(=無い袖は振れない)わたくしとしては、自分で作るしかないわけで。 郵便番号のリストは↓ここにありました。 郵便番号データダウンロード - 日本郵便 住所文字列と郵便番号が入っていればどれでもいいんですが、とりあえず、「住所の郵便番号(CSV形式)」の「読み仮名データの促音・拗音を小書きで表記するもの」というのをダウンロードしました。 次は地図です。こういうときに使う境界データとしては、統計局のe-StatでShap
a <- round(rnorm(30, mean=170, sd=5), 1) a [1] 173.0 168.6 168.5 164.2 167.3 170.6 162.7 168.0 170.8 [10] 175.7 166.0 166.5 162.4 172.6 170.1 170.2 164.2 167.1 [19] 163.8 163.4 168.1 168.7 171.1 164.6 166.3 177.0 170.0 [28] 173.3 170.7 169.0 このaに対して、度数分布表を作りたい。 質的データ(カテゴリカルデータ)なら、table関数を使って度数を集計できるのですが、量的データに対してtableを使うと、↓こんな感じになってしまいます。 table(a) a 162.4 162.7 163.4 163.8 164.2 164.6 166 166.3 16
duplicated関数の引数にデータフレームを指定すると、すべての項目(列)を組み合わせた上での重複チェックができますよ、という話を以前書きました↓ Rのデータフレームで複数項目を組み合わせた重複のチェック - Rプログラミングの小ネタ また、上記の記事では、すべてではなく一部の項目のみを組み合わせ対象にしたい場合は、interaction関数を使って新たにチェック用の列を作ってはどう?、というやり方も紹介しました。 が、duplicated関数がすべての列を対象にする動きなら、対象にしたい列だけで構成された新たなデータフレームを生成して、duplicated関数に渡した方がシンプルではないか、ということに気づきました。 例えば↓こんなデータがあって、 > d 名字 名前 年齢 1 伊東 二郎 52 2 佐藤 五郎 52 3 遠藤 太郎 53 4 後藤 太郎 53
Rで、「123123123...」とか「111222333...」とか「13579...」(奇数)とか「02468...」(偶数)とか、そんな感じの繰り返しを含むような数字の列を作りたい場合、1行でさらっと書けてしまいます。 【繰り返し】 > rep(7, 10) [1] 7 7 7 7 7 7 7 7 7 7 「○を○個だけrepeat」って感じで。 【1ずつ増加】 > 1:7 [1] 1 2 3 4 5 6 7 コロンでつなげば「○から○までインクリメント」 【○ずつ増加】 > seq(1, 7, 2) [1] 1 3 5 7 sequence関数で、「○から○まで○ずつ増加」 【1ずつ増加する数列を繰り返す】 > rep(1:7, 3) [1] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 repeat関数の第1引数に、「1
まずはShapeファイルを入手するところから。 総務省統計局がe-Statというサイトを運営していて、そこに全国各地域のShapeファイルが公開されています。 地図で見る統計(統計GIS) (1) 「平成22年国勢調査(小地域) 2010/10/01」を選択 (2) 「男女別人口総数及び世帯総数」にチェック (3) 「統計表各種データダウンロードへ」ボタンをクリック (1) 「都道府県」を選択 (2) 「市区町村」を選択 (3) 「検索」ボタンをクリック (4) 境界データの欄に表示されている 「世界測地系緯度経度・Shape形式」のデータをクリック ダウンロードしたzipファイルを展開すると、 xxx.shp xxx.dbf xxx.shx xxx.prj という、拡張子だけが違うファイルが4つできるんですが、これがshapeデータの1セットになります。 それぞれのファイルの中身は、シェ
Rでplotなどを使ってグラフを描くとき、x軸やy軸の目盛りは勝手に調整してくれて、大抵の場合はそれで問題ないのですが、たまにちょっと変えたい時があります。そのたびに必死で検索して調べているような気がするので、ここに書き留めておきます。 (最初の方の例はcurve関数を使ってますが、plot関数でも同様の方法でいけます) もちろん、特に指定しなくても、目盛りと目盛りのラベル(例えば、x軸の -4, -2, 0, 2, 4)は書いてくれます↓
Rには移動平均そのものずばりを求める関数はないようです。でも、filter関数を使えば簡単に実現できます。 まずは、filter関数の動きを確認。 xを時系列データとします。 > x <- c(1, 2, 3, 1, 2, 9, 4, 2, 6, 1) > x [1] 1 2 3 1 2 9 4 2 6 1 このxにfilter関数を適用すると、 > filter(x, c(1,1,1)) Time Series: Start = 1 End = 10 Frequency = 1 [1] NA 6 6 6 12 15 15 12 9 NA となります。 c(1,1,1)の3つの要素は、(時点 n-1,現時点 n,時点 n+1)に対応します。重みに差を付けられるのですが、ここでは同等にしたいので、すべて1にしています。端の要素は前後の要素がないのでNAとなります。 ↓こんな感じですね
日付時刻と観測値が対応付いたデータってありますよね。例えば、原子力規制委員会が公開している放射線モニタリング情報だと下記のようなCSV形式で、測定時刻と測定値が対応付いています。 V5, V6 2014/12/26 23:50, 0.033 2014/12/26 23:40, 0.034 2014/12/26 23:30, 0.033 ................, ..... こういうデータを見ると、V5を横軸、V6を縦軸にして時系列グラフを描きたくなりますよね。でも、V5が文字列型で読み込まれていると、そのままplotのx軸に指定してもうまくいきません。 日付や時刻を表現する型に変換してやる必要があります。 上記のような書式(日付がスラッシュ、時刻がコロン)ならば、POSIXlt関数に引数で渡すだけで、簡単に変換することができます。 > as.POSIXlt("2014/12/26
このページを最初にブックマークしてみませんか?
『Rプログラミングの小ネタ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く