RstudioからPythonを使う

「とりあえずRstudio上でPythonが少し使えればいい」というライトユーザーなので、簡単そうな方法は以下の通り: まず、reticulateをインストールする install.packages("reticulate") reticulateを使って、minicondaをインストールする reticulate::install…

tblからdouble(numeric)の列だけ取り出す

tibbleからdoubleのデータだけ取り出したい場合、どうすればいいか少し手間取ったので、覚書を残す。 require(dplyr) require(nycflights13) weather <- nycflights13::weather %>% select(origin, time_hour, temp, humid, precip) 注釈:このweatherという…

ワードでSEQを使って連番を作成する(式番号の自動割り振りなど)

[挿入]→[テキスト]→[フィールド(F)]→Seqを選択し、「フィールド・コード」の欄に「SEQ equation」などと入力する。 注意:SEQがコマンド、equationが識別子になる。 トラブルシューティング:連番が機能せず数字の順番がおかしくなった場合は、該当箇所を選…

[GNU R] githubからネット経由でローカルにrdaファイルを読み込む まず、carsをcars.rdaとして保存する。 save(cars, file="cars.rda") githubにcars.rdaをアップロードして、以下のようにloadする。 file_url <- "https://github.com/koiti-yano/colab/blob…

dplyrでlag()を使って、valueをずらすと空いた欄にNAが入るためそれを0に置き換える

require(tidyverse) date <- seq(as.Date("2020-1-1"), as.Date("2020-12-01"), by = "month")datevalue <- seq(1:12) test <- data.frame(date, value)test # たとえば、lag()を使って、valueをずらすと# 空いた欄にNAが入ることを確認するためのコード# 1…

seq()は日・月・年ごとの年月を生成できる

date <- seq(as.Date("2020-1-1"), as.Date("2021-12-01"), by = "month")date 日ごとにしたければ、by="day"、四半期ごとにしたければ、by="quarter" 長くRを使っているのだが、最近知った(古くからある機能らしい)。

imputeTSを使って補完

R

na_interpolation(x = dataset$variable_name, option = "linear") 以下のサイトの情報から自分が使うところだけ抜き出した: 参考文献: saecanet.com

RでStataのdtaを読み込む

いくつか方法があるが、パッケージhavenを使う方法が比較的手軽に使えるようである。以下は覚書。 require(haven) url <- "http://www.principlesofeconometrics.com/stata/broiler.dta" data.df <- read_dta(url) 参考文献: How to Read and Write Stata (…

Rstudioでソースのあるディレクトリに移動する方法

Rstuidoを使っている人限定: setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) 参考文献 stackoverflow.com

dplyrのselectとlagが衝突する場合の対応

メモ:最初に書いた内容に間違いあったため、修正。 一年ほど前に書いたRのコード(dplyr)が動かないことがわかった。コードを追ったところ(1)dplyr::selectがMASS::selectと衝突、(2)dplyr::lagがstats::lagと衝突していることが分かった(1年前は問…

huxtableのhuxregを使ってlmの結果をワードに出力

自分用覚書:huxregと quick_docxは便利なのでオススメ install.packages("huxtable") require("huxtable") lm.res1 <- lm(mpg ~ wt , data = mtcars) lm.res2 <- lm(mpg ~ wt + qsec, data = mtcars) lm.hux <- huxreg(lm.res1, lm.res2, number_format = "…

jtoolsを使ってlmの結果をワードに出力

後日のメモ:huxtableのhuxregを使えばいいので、jtoolsは不要かもしれない。 install.packages("flextable") install.packages("officer") install.packages("huxtable") require(“jtools”) lm.res <- lm(mpg ~ wt + qsec, data = mtcars) lm.summ <- summ(…

tidy()を使ってopenxlsxで結果を出力

library(ggplot2) library(dplyr) library(broom) library(openxlsx) lm.res <- lm(mpg ~ wt + qsec, data = mtcars) lm.res %>% summary() %>% tidy() -> lm.tidy lm.res %>% summary() %>% glance() -> lm.glance wb <- createWorkbook() addWorksheet(wb,…

日米のGDP統計(SNAとNIPA)の細かな違いについて

財政政策(政府支出)のデータ分析に関する自分用のメモ: 日本のGDP統計は正確には国民経済計算体系(System of National Accounts)といい、国際的な基準(国連が定めるSNA)に準拠している。それに対してアメリカのGDP統計はNIPA (National Income and Pr…

dplyrのmutateでlagと差分(自分の使うところだけ)

color <- c("R","B","B","R","R") weight <- c(51,55,72,57,64) dfrm <- data.frame(COL=color, WEI=weight) dfrm %>% mutate(WEILag = lag(WEI)) メモ:lagを使うと、データは下に1段下がる(1行下がる)。 差分を計算するとき、diff()は使えず、G_delta = …

embedの使い方(自分の使うところだけ)

embedの使い方(自分用のメモ) Rにはembedという関数があり、ベクトル・時系列を指定期間ずらす作業に使える。言葉で聞くとなんだかわからないと思うので、たとえば以下のような時系列データがあったとする。 デモ用データ 使い方は以下のとおり demoTs <- …

成長率の計算(改訂版)

以下の記事の続編: 成長率の計算 - ハリ・セルダンになりたくて(はてダから移行中) 少し改訂版を作ったので記録のために以下に(前期比・前年同期比も計算できるように)。 growthRate <- function(tsData, lagLen=1, percent=FALSE) { numSize <- length…

Rでダミー変数を作る(fastDummies)

そもそもlm()(とglm())には「data.frameの列がfactorである場合、自動的にダミー変数を作って、回帰してくれる」という機能がある(manにきちんと書かれてないので知らない人が多いかも)。 stats.idre.ucla.edu が、lmやglmの「自動でダミー変数を作る機…

openxlsxの使い方(自分が使うところだけ)

require(openxlsx) tmpdat<- read.xlsx("./data.xlsx", sheet = 2, startRow = 9, detectDates=TRUE)head(tmpdat) wb <- createWorkbook()addWorksheet(wb, 'Sheet1')addWorksheet(wb, 'Sheet2')writeData(wb, sheet = 'Sheet1', x = lm.res1, withFilter=F)…

成長率の計算

以下に改訂版の既述あり。 成長率の計算(改訂版) - ハリ・セルダンになりたくて(はてダから移行中) Rを使って成長率(%表示)を計算する方法についての備忘録。 前提:tsDataをベクトルもしくはtsオブジェクトとする。 その1:対数差分 diff(log(tsDat…

RでX-13ARIMA-SEATSを使う(2019年6月版)

自分用の覚書CRANにあるx13binaryが使えるようになったので、自分でX-13ARIMA-SEATSをコンパイルする必要がなくなり、MacとWinの違いもなくなりました。 [インストール]GNU Rで二つのパッケージをインストール install.packages("seasonal") 注:seasonalを…

GNU R (Windows10)にR Interface to 'Keras'をインストールする

GNU R (実際の作業はRstudio)でKerasをインストールしたときの覚書。基本的には(1)Anacondaインストール、(2)Anacondaでtensorflowインストール、(3)R上でdevtoolsインストール、(4)devtoolsでkerasインストール、(5)Windows上でRtoolsインス…

Rstudio (Windows10)でRのでパッケージをインストールする

Rstudio (Windows10)でRのでパッケージ(devtoolsなど)をインストールするとき、パスに日本語がある場合、Rstudioが認識できない(日本語パスの部分が????になる)。 libpathsでパスを指定する方法もあるが、一番簡単なのはRstudioを管理者権限で起動してイ…

matlab 警告: 名前が存在しないか、ディレクトリではありません

Windows10でDynareをインストールしたあとに「matlab 警告: 名前が存在しないか、ディレクトリではありません」という警告がでる問題の解決方法。 cd C:\dynare\4.5.7\contrib\ms-sbvar\TZcode\MatlabFiles\ edit startup.m ms-sbvarを使わない場合は、以下…

シンボリック関数を関数ハンドルに直して、arrayfunを適用する

arrayfunの使い方 - ハリ・セルダンになりたくて(はてダから移行中) と Matlabのシンボリック式を無名関数(関数ハンドル)に変換する関数 - ハリ・セルダンになりたくて(はてダから移行中) の合わせ技。 sf(x,y)というシンボリック関数があった場合、そ…

ある数字の繰り返しである行列を作成するのに効率的方法は?

たとえば、7が単に並んだ列ベクトルをつくるとき、Matlabで一番効率的な方法はなにか? tic; repmat(7, 1000000,1); toc;経過時間は 0.006551 秒です。tic; ones(1000000,1) * 7; toc;経過時間は 0.008067 秒です。 repmatの方が微妙に早い?のか?

arrayfunの使い方

Matlabに詳しい人には当たり前の話だと思うがarrayfunの使い方を自分用にメモ(Rではapply系の関数に該当するのがarrayfun、cellfun、bsxfunだと思えばいいのかな・・・): plusFun = @(x, y) x + 2 * yplusFun(1,2)arrayfun(plusFun, [1 2], [3 4])arrayfu…

Symbolic mathで微分演算子っぽいものを作る

Symbolic mathで微分演算子っぽいものを作ることができる。なんの役に立つか不明だが、面白い機能なので覚書。 [問題の定式化] 2回微分可能な関数について以下の簡単な常微分方程式を考える。 微分演算子を以下のように定義する。 微分演算子を使えば、常微…

Symbolic mathではシンボリック関数の配列が作成できる。微分もできる。

使い方次第だと思うが、面白い機能なので覚書。 シンボリック関数はsymfunで作ることができる(フォーマルなやり方)。簡易なやり方としてsym f(x,y)のようにすることもできる(xxとyyは自動生成される)。 syms phi1(xx) phi2(xx); phi1(xx) = xx; phi2(xx)…

シンボリック式・シンボリック関数はstringで文字列に変換できる

何に役立つのか分からないが、面白い機能なので覚書(この機能はMatlabドキュメントに載っていないようなので)。 syms xx yy; % シンボリック式はstringで文字列に変換できるstring(xx + yy) % シンボリック関数もstringで文字列に変換できるtestFun = @(xx…