R

ヘルスプラネットからデータを取得するパッケージを作った

R

はじめに 主に俺の健康を管理するために、ヘルスプラネットというタニタの運営するサービスのAPIを叩いてデータを取得するパッケージを作った。 とりあえずinnerscan系の情報 体重 (kg) 体脂肪率 (%) 筋肉量 (kg) 筋肉スコア 内臓脂肪レベル 基礎代謝量 (kca…

「NOMURA原油インデックス連動型上場投信(銘柄コード1699)」のボラティリティを知りたい

掲題の件、そういうことです。 この上場投信(ETF)のサイトは NEXT FUNDS NOMURA 原油インデックス連動型上場投信 《愛称》原油先物ETF(1699) ここではついでに、 この上場投信価格が「WTI(West Texas Intermediate)原油先物 × USDJPY」でちゃんと計算でき…

ファイルの行数を調べたい

R

Linuxだとwc使えばいいんだけど、Windowsだとどうしたらいいんだろうかと思って見つけたメーリングリスト。 比較的大きいファイルを扱うので、効率的に処理したいところ。 http://r.789695.n4.nabble.com/Fast-way-to-determine-number-of-lines-in-a-file-t…

それっぽいグラフを書きたい - 2

R

これは君らにとって小さな一歩だが、私にとって偉大な飛躍なんだ。 library("ggplot2") library("scales") #元データ(適当) df <- data.frame(x=rep(1:10, 2), y=rnorm(20), type=rep(LETTERS[1:2], each=10)) ggplot(df, aes(x=x, y=y)) + #フォントを大き…

それっぽいグラフを書きたい

R

これは君らにとって小さな一歩だが、私にとって偉大な飛躍なんだ。 library("ggplot2") library("scales") #元データ(適当) df <- data.frame(x=rep(1:10, 2), y=rnorm(20), type=rep(LETTERS[1:2], each=10)) ggplot(df, aes(x=x, y=y)) + #%+replace%でテ…

factorのレベルをそろえたい

R

R言語の中でfactor(因子型)は数値として扱われており、外っつらが同じでも中が異なる場合があるので注意が必要だ。 例えば >|r| > rlove <- c("R", "L", "O", "V", "E") > x <- factor(rlove) > x [1] R L O V E Levels: E L O R V > as.numeric(x) [1] 4 2…

geom_tileで中抜きしたい

R

塗りつぶした長方形じゃなくて、淵にだけ色つけたい&そもそもgeom_tileの指定方法知らなかった。 df <- data.frame( x = c(1,2), y = c(3,4), z = c(1,2) ) ggplot(df, aes(x, y)) + geom_tile(aes(fill = z)) ggplot(df, aes(x, y)) + geom_tile(aes(fill …

日付(Date) → 文字列(character)はstrftime 関数

R

関数名覚えられないマン。 > today <- Sys.Date() > class(today) [1] "Date" > today [1] "2015-12-26" > strftime(today, format="%Y%m%d") [1] "20151226" > class(strftime(today, format="%Y%m%d")) [1] "character"

ggvisでインタラクティブな凝った可視化をする

R

この記事はR Advent Calendar 2015の9日目の記事です。ggvisパッケージを使ってちょっとだけ凝った可視化をしてみたので、その備忘録&情報共有です。 内容としては (適当な)予測モデルを作って 予測値からの実際のずれが上に(下に)大きいほど、描画される点…

r-wakalangのおかげでベクトル引数に対応したseqっぽものが一瞬で出来上がりました。ありがとうございます

R

連続する数値をたくさん作ろうとコードを書いたら以下のように怒られた。 > seq(0, 1:15) Error in seq.default(0, 1:15) : 'to' は長さ 1 でなければなりません 世間はなんて辛いんだ。 そこで、↑が動くor等価な出力をする結果がほしいとr-wakalangで質問し…

渡辺君、ぼかぁCRANではテストしとうないんや…

R

自分で作ったパッケージについて、パッケージをCRANにあげるのは大変な苦労をともなう。 それを少しでも軽くしたい、手元や継続的CI環境ではテストに成功しているのにCRANでもテストするだなんて面倒くさい。そんな時にはtestthatパッケージで単体テストを書…

確率変数の変換について

ロジックメモ ある確率変数とその写像で定義される2つの確率変数、特に確率変数の確率分布について考えたい。 の確率分布関数は と確率変数の確率分布関数を用いてあらわすことができる。ここで、は単調増加な関数であると仮定している。単調減少の場合は不…

売上げを気温で回帰してみる

あたまだし 掲題の件、最近出たわかりやすいデータ分析の入門書、 において 売上げ v.s. 気温 として回帰分析をしていたケースがあった。これが時系列データに対するやってはいけない回帰、すなわち、みせかけの回帰に相当するケースではないか?という話を…

dplyr: by + do.call("rbind")するならdoすべし

R

"グループ毎にXXXしたい"という時のXXXの内容が複雑な場合、関数として処理を切り出したくて、以下のように書いてみた。 処理の内容は"Speciesのグループ毎にその最終行のPetal.Lengthの値を取得する"だ。 > process <- function(df){ + df[nrow(df),]$Petal…

標準誤差と(ノンパラメトリック)ブートストラップのイケない関係

標準誤差と(ノンパラメトリック)ブートストラップについて、特に理論的なお話はおいておいて、直感的にどういうことなのかということをメモりたい。 それぞれ (回帰分析の係数の)標準誤差: ある確率分布からのサンプルデータに対し推定されたある統計量(ここ…

可視化で理解しない「負の二項分布」

匿名知的集団であるホクソエムの親分が可視化で理解する「負の二項分布」 - ほくそ笑むで言及している負の二項分布ですが、シンクロニシティというか、同じ匿名知的集団ホクソエムなので当たり前と言えば当たり前なのですが、私も負の二項分布、特に負の二項…

層別サンプリングした結果を綺麗に持ちたい

層別サンプリングをするには、samplingパッケージのstrata関数使えばいいんだけど、出力とインターフェイスがイケてないのでラップする。 下記の`stratified_sampling`関数を使えば、各層(クラス)の割合を一定に保ったままサンプリングしてくれる。 library(…

新型のランダムフォレスト(Random Forest)パッケージ比較:Rborist・ranger・randomForest

R

最近、ランダムフォレスト系のパッケージの高速実装が複数 CRAN - Package Rborist CRAN - Package ranger 出てきたので、それ調べておきたい。各々install.packagesを使えば入るので入れておくこと。また旧型(randomForest)も比較対象にしておく。まず、速…

leafletパッケージで地図上にランダムにマーカーを打ちつつそれを1秒おきに更新するshiny app

R

invalidateLaterで制御する感じか。あとはまともなリアルタイムデータソースにつなげばたのしそう。ものはこちら。 https://teramonagi.shinyapps.io/lefproxy コードは以下でOK. library("shiny") library("leaflet") ui <- bootstrapPage( tags$style(type…

3次元のベクトル場を書く際には(heplots | compositions)パッケージの(arrow3d | arrows3D)関数

R

rglパッケージベースな3次元ベクトルのplot on 3次元には(heplots | compositions)パッケージを使うのがよさげか。書き方の便利さからcompositionsパッケージを使っていきたい。また、rglベースじゃなく、静止画でOKならplot3Dパッケージもあった。 heplots…

(g)lmのNA省略(デフォルトの挙動)でうっかりうっかり

データにうっかり欠損(NA)が入ってると、デフォルトでその行がモデル構築&予測結果からごっそり削られるうっかりミスを防止するための備忘録うっかりうっかり。 > library(dplyr) > #デフォルト(自分で設定したオプション値だけど)のNAなし時の挙動 > get…

data.frame(データフレーム)にlapplyする

R

lapplyをデータフレームに適用すると > df <- data.frame(a=1:5, b=letters[1:5]) > df a b 1 1 a 2 2 b 3 3 c 4 4 d 5 5 e > lapply(df, function(x){x}) $a [1] 1 2 3 4 5 $b [1] a b c d e Levels: a b c d e と、列ごとに処理が走る。それを(元のdata.f…

pforeachとforeach関数の戻り値の微妙な違い

R

親分が作ったpforeachパッケージという素晴らしく簡単にRで並列計算できるパッケージがある R で超簡単に並列処理を書けるパッケージ pforeach を作った - ほくそ笑む 通常使う分には現在提供されている機能で十分なのだが、デフォルトの戻り値の型がpforeac…

MD5(Message Digest 5)やSHA1(Secure Hash Algorithm 1)などのハッシュ値を計算したい時にはdigestパッケージ

R

ちょっと シミュレーションした結果がばらばらになってて、その値を再整理、及びグループ化する ために、そのグループのキーとしてハッシュ値を使おうかなって思ったんだ。そのためにはRcppで有名なDirk氏が開発されたdigestパッケージを用いる。 install.pa…

glmnetで多クラスのロジスティック回帰

R

誰かやってるようでなかったのでメモ。 glmnetはElastic Net(L1で罰則つけるlasso回帰、L2で罰則つけるリッジ回帰のまぜあわせ)ができるパッケージで、こいつを使うと多クラスのロジスティック(多項ロジスティック)回帰もできる。まずパッケージを突っ込…

ggplot2のデフォルトの色(color, colour)パレット

R

これのgg_color_hue関数を見るんじゃ。ggplo2本 by Hadleyのにも載ってるらしい。 r - Emulate ggplot2 default color palette - Stack Overflow

常微分方程式をRで解く際の精度

R

という常微分方程式の解は で、これをRで数値的に確かめたい。 ついでに、数値積分の手法(ここではEuler法とRunge-Kutta4次)によって、どのくらい厳密解とずれるのかも調べる。Rで常微分方程式を解く際にはdeSolveパッケージを用いるのが楽。結果を算出す…

引数があったりなかったりする処理

R

今まで使ったことなかった。引数が存在しているか否かはmissing関数で判定するということだ。関数のデフォルト引数との使い分けをどうしたらいいのかはわからない。 f <- function(x, y) { if(missing(y)){return(x)} if(missing(x)){return(2*y)} x + y } …

C言語の関数ポインタを取るインターフェイスにRcpp::Functionを渡したい

R C++

最近だとtemplateの魔力を使ったC++を使えばこんなことする必要はないですが、古いC言語で書かれたライブラリなんかに、関数ポインタを引数として渡す必要がある場合のお話。以下のコードでは、関数ポインタ(typedef double(*Simulate)(double x))を引数にと…

カイ二乗値を計算する

今まであまり考えないで検定用の関数に突っ込んでたんで実際に計算してみんとす。例が悪くてあれなんだが、以下のような取引戦略A・B、およびその勝敗のデータがあったとする。 > x <- matrix(c(110, 119, 200, 207), 2, 2) > rownames(x) <- paste0("Strate…