2016-01-01から1年間の記事一覧

Jupyterで表示されるpd.DataFrameをテーブルっぽく表示させる

Jupyterの最期の評価値(pd.DataFrame)と同じように表を出力させたい時。 適当なpd.DataFrameをdfとして from IPython.display import display, HTML display(HTML(df.to_html())) こう。(追記) ・・・と思ったら display(df) で良いみたい。

文字を整数に(string to int)

Go

ちょいとめんどいので、関数に。 package main import ( "fmt" "strconv" ) func atoi(s string) int{ val, _ := strconv.Atoi(s) return val } func main(){ x := atoi("2131") fmt.Println(x) }

標準入力からの値をとる

Go

区切りとかは必要に応じて変更 package main import ( "fmt" "strings" "bufio" "os" ) func main(){ s := bufio.NewScanner(os.Stdin) for s.Scan() { for index, element := range strings.Split(s.Text(), " ") { fmt.Println(index) fmt.Println(element…

use_testthat()でテスト用のディレクトリ・ファイルを一発で作る

R

昔devoolsにあったと思った関数が、いつの間にかusethisという新しいパッケージに移っていたので、そのメモ。 こいつに入っている use_testthat()を用いると、Rのパッケージを作る際のテストディレクトリ・ファイルを一発で作ってくれる。 > devtools::inst…

値を動的に生成して、動的に取得する

R

assignで動的に値を生成して、getをうまく活用すれば取れる、が、あまりきれいではない。 > f <- function(){ + for(i in 1:10){ + assign(paste0("variable_", i), i) + } + variable_names <- ls(pattern="^variable_.*") + sapply(variable_names, functi…

ABテストに関する某氏の助言

分野違いすぎてよくわからんが、言っていることは正しい(はず) [6:54 PM] A/B テストをやっているのですが、A/A も同時にやっていて、A1/A2/B の3つのグループのデータがあります。 サンプルサイズはアホなほどあり、A/A でもすべてのデータを使うと有意差…

captionerパッケージで図・表に対する参照(レファレンス)を取得する

R

http://datascienceplus.com/r-markdown-how-to-number-and-reference-tables/にあった話。 captionerパッケージを用いると、R Markdownの中での図表の参照を簡単に書くことができるというお話。以下、簡単な例だが、こんな様に書けば図表に対する参照もでき…

リストに名前を付けるのは最後にした方がいいっぽい(へんなのR)

R

へんなのRというハッシュタグがある。 そこに投げつけるための話。 適当な関数の用意 3の時だけNULLであとはirisデータの頭を返す関数を用意する。 これはNULLを返す場合があるってのが本質で、あとは適当でよい。 #3の時だけNULLほかは適当 f <- function(…

Rcpp内で日付(Date)を取り扱う

R C++

Rcpp内でDate型を取り扱いたいときにはDateVectorクラスを使用する。 ただ、 c++ - Subsetting Rcpp::DateVector using IntegerVector that contains indices? Operator [] overload - Stack Overflow によると、Rcpp内で日付を扱うためのDateVectorクラスは…

三連ドット(..., dot-dot-dot, ellipsis)の取り扱い

R

これもr-wakalangに投げ込んで教えてもらった話なので、まずは簡単にまとめる。 基本的な使い方 適当な...を持つ関数を定義する。 f1 <- function(x, ...) { dots <- list(...) print(dots) } これに対して以下の実行結果からわかるように、引数にマッチしな…

金融市場が混乱する間隔を日経平均ボラティリティー・インデックス(日経平均VI)から推定したい

日経平均ボラティリティー・インデックス(日経平均VI)の半減期が知りたい - My Life as a Mock Quant 日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった - My Life as a Mock Quant 日経ボラティリティー・…

日経平均ボラティリティー・インデックス(日経平均VI)の半減期が知りたい

日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった - My Life as a Mock Quant 引き続き日経VIネタ。 日経VIの挙動は、株価のような対数幾何分布に従うような確率過程(そうは見えないけどそうだと思っておく…

dplyrで時系列データの処理

R

dplyrを拡張してデータフレームっぽい俺俺クラスを動かす - My Life as a Mock Quant で書いた、”dplyrでの時系列処理ってどうするんじゃい”というのの簡単な例。 下で示したようなやり方で大半は片付くのではないだろうか(たぶん)。まず、ライブラリ&サ…

dplyrを拡張してデータフレームっぽい俺俺クラスを動かす

R

みんな大好きデータフレームのハンドリング用ライブラリdplyrを拡張して、時系列データのxts型も同じように操作できるtplyrパッケージを作ろうと思ったんだが、よくよく考えるとdplyrままでいいんじゃないかなって思って辞めた。 その際に試行錯誤した残骸を…

パッケージ作ってて、そのパッケージの中のある関数中で他のパッケージの関数呼ぶ場合、DESCRIPTIONのImports書いてるだけじゃだめぽなんですが、 これちゃんとNAMESPACEにImport書かないとダメなんでしたっけ…?

R

完全備忘録。 hoxo_n パッケージ作ってて、そのパッケージの中のある関数中で他のパッケージの関数呼ぶ場合、DESCRIPTIONのImports書いてるだけじゃだめぽなんですが、 これちゃんとNAMESPACEにImport書かないとダメなんでしたっけ…? 聖書にちゃんと書いて…

日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった

なんもなかった。が、なんもなかったなりの備忘録。 データの取得 Quandle経由で取得。元のソースはコメントに記載。 PLOTを見る限り、ちゃんとした元の値っぽい。 library("Quandl") # Sorce: https://www.quandl.com/data/NIKKEI/VLTL-Nikkei-Stock-Averag…

foreachでprogressbarを表示しても進行状況は正しくないケースが多い

R

foreachでprogressbarを表示する - J's blog Rでプログレスバー - 驚異のアニヲタ社会復帰への道 の辺でやられているforeach系パッケージでプログレスバーを出す方法だが、これは進捗を正しく表すものではないケースが多い*1。例えば、 library(foreach) lib…

数値の頭に0を詰めて桁を揃える

C++

数値の頭に0を詰めて桁を揃える - My Life as a Mock Quant のC++版をやりたい。 #include <iostream> #include <iomanip> #include <string> #include <sstream> int main() { // 現状保存 std::ios::fmtflags curret_flag = std::cout.flags(); //123の頭に5個0を詰めて8桁にする std::ostrings</sstream></string></iomanip></iostream>…

各グループごとにXXX(標準化など)したデータを作成する

R

今までは、例えば、下記のようなあるデータフレームのデータを、日付ごとにスケーリング(scale())し、その結果をデータフレームとして返すような処理として、以下のように書いていた。 これは「各日付ごとに全IDのデータ(r)列が存在し、それを日付ごとにスケ…

0, 1でやっときゃFactor型と同じ結果になる

R

回帰の時あえて変数をFactorにする必要あるのかな?ってのを確かめておいた。 Factorが0,1の場合だけだけど。 > set.seed(71) > x <- 1:100 > z <- rep(0:1, 50) > y <- 1.2*x + 2.3*z + 3.4 + rnorm(100) これで普通に回帰すると > glm(y ~ . , data=data.f…

MD5(Message Digest 5)のハッシュ値を計算したい時にはmd5ライブラリ

http://d.hatena.ne.jp/teramonagi/20150620/1434774864 と同じ話をPythonでやりたかった。 md5ライブラリを使えばよい&Rと答えを合わせるためには`serialize=FALSE`せんといかん点に注意。 seriarize引数の説明は A logical variable indicating whether t…

data.frame, cbindは文字列(character)ではなく因子(Factor)がデフォルトだった・・・っけ?

R

掲題の件、どうやらそうだったらしい。 なので、毎回stringsAsFactorsを設定すると(Hadleyverseはあえてつかわない) お元気で。 > df <- data.frame(x=1:3, y=letters[1:3]) > str(df) 'data.frame': 3 obs. of 2 variables: $ x: int 1 2 3 $ y: Factor w…

全体の設定は $R_HOME/etc/Rprofile.site に書く

R

~/.Rprofileでユーザ個別の設定になる一方、$R_HOME/etc/Rprofile.siteが全体の設定だったんだなぁ。 参考 http://www.agr.nagoya-u.ac.jp/~seitai/document/R2009/Rsettings.pdf http://www.cwk.zaq.ne.jp/fkhud708/files/R-intro/R-stat-intro_01.pdf http…

dockerメモ

私的メモ VOLUMEコマンド後に当該ディレクトリに作成したファイルは作成されない http://qiita.com/namutaka/items/f6a574f75f0997a1bb1d 環境変数はコンテナ起動時にその時のユーザに割り当てられる(多分) http://stackoverflow.com/questions/36978880/w…

ないパッケージはインストールして、残りは全部読み込む

R

pacman使えよって話だが。 # ほしいパッケージ全部書いとく packages <- c("ggmap", "dplyr", "tidyr", "data.table", "rgl", "stringr", "R.utils", "scales") # ないやつはインストール new_packages <- packages[!(packages %in% installed.packages()[,"…

dplyrでデータをグループごとに分けた状態でデータを持つ

R

要するに、”あるグループごとのデータフレームに分解してデータを持つ”ということをしたいんだ、そしてこんなんでた。 > x <- iris %>% + group_by(Species) %>% + do(val=data.frame(.)) > x Source: local data frame [3 x 2] Groups: <by row> Species val (fctr)</by>…

ggplot2で中が塗りつぶされていない長方形を描く

R

使うたびにはまる系なのでめもる&答えはgeom_rect()でfill=NAとする。 library("ggplot2") ggplot(mtcars, aes(qsec, mpg)) + geom_point()+ geom_rect(aes(xmin=18, xmax=20, ymin=21, ymax=23), fill=NA, color="red")

dplyr でグループごとに複数カラムを追加したい

R

dplyr でグループごとに複数カラムを追加したい #rstatsj に対する1回答。 > library("dplyr") > library("tidyr") > probs <- seq(0, 1, by=0.25) > iris %>% group_by(Species) %>% + summarize(tmp=list(data.frame(prob=probs, quantile=quantile(Sepal…

ggplot2の軸を上付きのべき乗で書きたい

R

そういうことです。今のところの私の答えは以下で breaksでちゃんとX軸のどれを書くかを指定 trans_formatでべき乗表示に変換 です。 ggplot(data=data.frame(x=10^(1:4), y=1:4), aes(x=x, y=y)) + scale_x_log10(breaks=10^(1:4), labels=trans_format('lo…

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

R

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