R
POSIXctはタイムゾーンを伴った日時型であり、これをas.Date()という組み込み関数に渡すと、Dateという日時型に変換できる。 この関数の挙動にどうにも違和感がある。 どうもこの関数、POSIXctをas.Date() する時にtzを指定しない場合、POSIXctのタイムゾー…
結論 library(grid)する。 > # エラーになる > grid.newpage() エラー: 関数 "grid.newpage" を見つけることができませんでした > > # gridを読み込めば大丈夫 > library(grid) > grid.newpage() 説明 grid.newpage()はggplot2に含まれていない。
rubyで言うところのキーワード付き引数みたいな事がしたい。 結論 普通に引数を定義するだけで、キーワード付き引数のように振る舞う。 function_argument_biheibia_test <- function(argument1, argument2) { print(argument2) } function_argument_biheibi…
やりたい事 ここにirisがある。 > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7…
結論 > expand.grid(c('a', 'b', 'c'), c('1', '2', '3')) Var1 Var2 1 a 1 2 b 1 3 c 1 4 a 2 5 b 2 6 c 2 7 a 3 8 b 3 9 c 3 説明 例えば、「10段階にカテゴライズされた年齢」と「性別」に対して組み合わせを求めたい時とかに使う。
結論 止めたい位置でbrowser()を実行する。 例: このようなスクリプトがあったとする。 a <- 1 止めたい位置にbrowser()を挿入する。 a <- 1 browser() 実行時にconsoleが起動し、対話的にコードを実行できる。 Browse[1]> a [1] 1 説明 browser()が実行され…
結論 > string_vector <- c('abc', 'def', 'ghi') > Reduce(function(x, y){ paste(x, y) }, string_vector) [1] "abc def ghi" こうすれば行ける。 もっとシンプルな方法は無いものか… 背景 ある変数のclassをチェックして、想定外の値だったらstop()させる…
結論 # 期待するカラム(の名前) expect_column_names <- c('V1', 'V2') # 判定したいテーブルが持っているカラム。 # 「V3は別にマストで存在していて欲しい訳ではないがあっても問題ない」という条件で判定したい。 column_names <- names(data.table(V1=1,…
結論 eval以外のいい方法が見つからなかった。 sample_data_table <- data.table(V1=1, V2=2) new_column_name <- 'new_column' expr <- parse(text = paste(new_column_name, ":= V1+V2")) sample_data_table[, eval(expr)] ## Checking the result print(s…
結論 # 処理 system("osascript -e 'display notification \"done.\"'") 結果 説明 AppleScriptから通知を行う事ができる。 osascriptを使うことで、AppleScriptのコードをシェルからevalできる ← これでshellから通知を行える sysytem()を使うことで、shell…
R6パッケージを使って作ったクラスについて、以下のエラーが出る事がある。 R6::R6Class("XxxxXxxx", public = list(initialize = function(xxxxx) { でエラー: All elements of public, private, and active must be named. R6で定義しているメソッドについ…
結論 system.time({ # 測定したいコード })
結論 table <- data.table(a=1,b=2,c=3) prefix <- 'hoge' old_names <- names(table) new_names <- paste(prefix, old_names, sep='.') setnames(table, old_names, new_names) これで、 処理前にnames(table) #=> "a" "b" "c"だったカラム名が、 names(tab…
背景 R6パッケージで作ったこんなクラスに対して、クラスメソッドとかスタティックメソッドみたいな物を付けたい。 クラスメソッドとスタティックメソッドは違うものだけど、とにかくクラスをインスタンス化しなくても使えるメソッドを付けたい。 # ある証券…
前提 logical型の目的変数をrandomForest() (randomForestパッケージの)で予測したい。 regressionでは無くclassificationがしたい訳だが、以下の警告がでる。 > nikkei225.rf <- randomForest(is_up~., data=train.rf, mtry = 184) 警告メッセージ: randomF…
結論 # 長時間かかる処理 system("say 'done.'") 説明 system()でシェルコマンドが実行できるので、sayなどで音をだす。
前提 RのrandomForestパッケージにあるimportance()関数を使うと、学習した各種特徴量が目的変数の説明にどのくらい寄与しているのか得られる。 この時、この結果は、特徴量をrownameとするMatrixとして得られる。これをV1を特徴量の名前、V2を寄与度とするd…
結論 Reduce()を使うっぽい。 Reduce(function(x, y){ x + y }, c(1,1,1,1,1) ) [1] 5 > Reduce(function(x, y){ x * y }, c(1,2,3,4,5) ) [1] 120
結論 Java SEをバージョンアップしたら解消した。 説明 java -versionでバージョンが確認できる。 ╰─$ java -version java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609) Java HotSpot(TM) 64-Bit Server VM (build…
あらすじ kaggle初挑戦: タイタニック乗客のプロフィールから生存率をランダムフォレストで予測してみた - 時系列のフリーランチshinya131-note.hatenablog.jp 先週の日曜日にRをインストールして、Kaggleをやり始めた。 大変おもしろいのでもっと勉強する事…
環境 RStudio + R Mac OS 結論 Rのバージョン古かった。アップデートしたら成功した。 説明 dplyrという便利そうなパッケージを知ったのでさっそくインストール。 以下のようになってインストール出来ない。 > install.packages("dplyr") Warning in install…
前回までのあらすじ kaggle初挑戦: タイタニック乗客のプロフィールから生存率をランダムフォレストで予測してみた - 時系列のフリーランチshinya131-note.hatenablog.jp Rインストール kaggleチュートリアル課題やった 困っていること 与えられたデータがど…