2013-02-01から1ヶ月間の記事一覧

アライメントの調整を楽にする

C++

構造体をVBA(Excel)からC++に投げつける際には、データのメモリへの詰め込まれ方、アライメント(VC++デフォルト8バイト・VBA4バイト)に注意せんといかんわけです。 これを成し遂げるために今までは【プロジェクトのプロパティ】→【C/C++】→【コード生成…

vectorの配列番号をメモったまま(部分的に)並び変える

C++

昇順・降順ともに一旦ベクトルの値をindex-valueでペア化して、それをソート(ここではpartial_sort)するような関数(ここではlessPair, greaterPair)を用意すればOK。 ここではベクターの上位二番目の位までを降順並び替え。 #include <vector> #include <algorithm> #includ</algorithm></vector>…

STL vectorをRcpp::NumericMatrixのある列(行)に代入したい

R C++

生のstl vectorをNumericMatrixに突っ込もうとすると怒られた、一方、一旦Rcpp::NumericVectorを経由させたらイケた。 以下、サンプル。行・列ごとの代入もラクラクで便利。 library(Rcpp) library(inline) src <- ' std::vector<int> x(2,111); NumericMatrix xx</int>…

vectorの指定したiteratorの要素番号を取得する

C++

これも良く忘れるのでメモん。例えば最大の要素自体はmax_elementで取得できるんだけど、それのindex番号が欲しい時の書き方。iteratorの初めとのdistanceを取ればよい。別に最大要素のiteratorじゃなくても良くて適当なiteratorとのdistanceしてやればいい…

タブ区切りのテキストを読み込む

これが一番楽っぽい。 #include <iostream> #include <fstream> #include <string> #include <vector> int main() { const std::string file_name = "test.txt"; std::ifstream file(file_name.c_str()); std::string temp; std::vector<std::string> items; while (getline(file, temp, '\t')) { items.push_</std::string></vector></string></fstream></iostream>…

文字列を全て大文字(小文字)に変換したい

C++

時折ド忘れするのでメモ。 要するにtransform + toupper(tolower)の組み合わせが一番楽に出来るぞと。 #include <iostream> #include <string> #include <algorithm> int main() { std::string x("abCdef"); std::transform(x.begin(), x.end(), x.begin(), ::toupper); std::cout << x; r</algorithm></string></iostream>…

QuandlのAPIを叩いてデータ(経済・金融指標)を取得する

R

Quandlというサイトを何方かから教えていただいて、ちょっと調べてみるとデータをAPI経由で取得できるとのことでこりゃ便利だぞというわけで使ってみる。 日本に関連したデータは http://www.quandl.com/japan にまとまっている。今回はIMFが公表している世…

ケイグォ(Kaggle)が俺にまだ知らないRの機能を使えと囁いている

R

cut関数(連続データの離散値化) 連続値をとるデータを適当な区間(breaksで指定)で分割して、factor化してくれる。 > x <- rnorm(10) > x [1] 0.07927061 0.81770466 0.21693545 -0.95629685 1.77248104 -1.29774920 -1.05448409 -0.55145272 2.30786460 […

R言語でデータ拡大(Data Augmentation)サンプリング法を実装してみた

データ拡大 (Data Augmentation)サンプリング法ってのをお勉強したのでそのまとめ。 概要&アルゴリズム 説明は2つ目の参考LINKに書いてある方法でずばり良いと思う。 要するに 分布から直にサンプリングしたいんだけど、それが難しいという状況の時、適当…

R言語でスライスサンプリング(Slice Sampling)を実装してみた

スライスサンプリング(Slice Sampling)というサンプリング手法 Slice sampling, Radford M. Neal, Source: Ann. Statist. Volume 31, Number 3 (2003), 705-767. [physics/0009028] Slice Sampling についてお勉強していたのでまとめる。以下の文章で「原論…