R

Rで非等価結合 (2)

R

dplyrが1.1.0になった。これにより、Rで非等価結合 - もうカツ丼はいいよなで少し触れていたdplyrによる非等価結合が正式にサポートされた。 記事で取り上げていた例なら次のように簡潔な記述で結合できるようになった。 # データの準備 library(dplyr) car …

DTでNA、Infを扱う

R

RのDTパッケージを使うとJavaScriptのDataTablesライブラリ(DataTables | Table plug-in for jQuery)利用したインタラクティブなテーブルが作成できる。 しかし、JavaScriptのライブラリである都合上、Rでは可能なことが簡単には実現できないということもあ…

指数平滑移動平均における初期値の決定・調整方法とR、Pythonでの計算方法

指数平滑移動平均は移動平均の一種で、数列のある値に対応する移動平均値を、次のような漸化式で定める。 ここでは新しい値に対する重みの割合を調整する係数で、であり、1に近いほど直近の値の影響が大きくなる。 漸化式を級数展開して、次のような表現をす…

Rで非等価結合

R

非等価結合 is 何 通常の結合(等価結合)においては、テーブル同士を結合する場合にそれぞれのテーブルから列を指定し、列の値が等しいという条件をもって行同士を結合する。 非等価結合は結合条件に不等式や範囲などの等値ではない条件を指定して結合する。…

ggplot2でヒストグラムに経験分布を重ねて描く

R

2ヶ月に1回くらい同じようなことをやろうとして都度調べている気がするのでまとめておく。

RStudioにショートカットを追加する(shrtctsパッケージ)

前置き RStudioはキーボードショートカットのカスタマイズができる。 https://support.rstudio.com/hc/en-us/articles/206382178-Customizing-Keyboard-Shortcuts-in-the-RStudio-IDE だが、好きなキーボードショートカットを追加しようとするとRStudioの設…

配当所得を総合課税にするかどうかの話

Tax R

毎年なんとなくの知識で配当所得を確定申告して総合課税にしているが、きちんと計算をしたことが無かったので計算をした。

write.csvでgsubのエラー

R

先日Rを触っていたら次のようなエラーが出た(という報告を受けた)。 Error in gsub("\"", qstring, col.names, fixed = TRUE) : input string 2 is invalid in this locale 状況としてはPostgreSQLのデータをdplyrでmutateしてwrite.csvに渡す際に発生して…

Withings APIを使ってRでWithingsのデータを取得する

R

普段Withingsの体重計(Withings Body Cardio)と睡眠計(Withings Sleep)を使っているが、このデータはAPIを利用して取得することができる。 Withings Body Cardio フランス生まれのスマート体重計 ブラック Wi-Fi/Bluetooth対応 心臓の健康チェック(心拍…

RからBigQueryに接続する

概要 RからBigQueryに接続する方法としては大きく2種類ある。 odbcパッケージおよびODBCドライバを使用する方法 bigrqueryパッケージを使用する方法 RStudioのドキュメント(Google BigQuery)を読みながら両方試してみたので手順をメモっておく。ちなみに2の…

ggplot2で離散スケールの一部の色だけ変更したい

データセットmtcarsをfactorにしたcarbで色分けしてプロットするため、次のようなコードを書いたとする。 library(ggplot2) ggplot(mtcars, aes(x = hp, y = qsec, colour = factor(carb))) + geom_point() 結果はこうなる。 ここで、carb == 3の場合のみ色…

Rでマネーフォワードをスクレイピングする

R

マネーフォワードのポートフォリオ(資産ページ)は資産の内訳が一覧できて便利なのだが、銘柄コードがあるものは全部株、という感じでざっくりしている。商品の区分も業種の区分もわからないので、もうちょい細かく見たいときに困る。というか自分のポート…

M1チップ搭載のMacだとRのgmpパッケージが動かない?

R

結論から言うと、install.packages("gmp", type = "source")として、手元でビルドするようにすれば動く。

RでFizzBuzz

R

PythonでFizzBuzz PythonのFizzBuzzワンライナーってどんなだったかなと思ってちょっと調べた。 for i in range(100):print(i%3//2*"Fizz"+i%5//4*"Buzz"or-~i) 最後の-~って何だと思ったら~はビット反転だった。2の補数、はるか昔に基本情報でやった記憶が…

odbcパッケージ経由だとvarcharが255文字に切り詰められる問題

R SQL

ハマるの2回目なのでメモっておく。 PostgreSQLで“test”という名前のデータベースが存在していて、そこに接続している状態を想定する。 con <- odbc::dbConnect(odbc::odbc(), "test") PostgreSQLのcharacter varying(varchar)は、長さ指定なしで使うと文…

「マンガでわかる統計学[因子分析編]」の主成分分析をRでやる

やったのでメモっておく。 「第4章 主成分分析」より。 主成分と主成分得点を求める Step0. データ入力 library(tibble) ramen <- tribble( ~店舗, ~麺, ~具, ~スープ, "二郎", 2, 4, 5, "夢田屋", 1, 5, 1, "地回", 5, 3, 4, "なのはな", 2, 2, 3, "花ぶし"…

農薬の名前はポアソン分布に従っている

R

気がするのでちょっと見て欲しい。 まず、rvestを使ってFAMICから農薬登録情報のcsvをダウンロードして保存する。URLがちょいちょい変わるのでxpathとかで抽出したほうが良い。 library(rvest) library(dplyr) url <- "http://www.acis.famic.go.jp/ddata/in…

Project Euler Problem 26 - 最も長い順環節を持つ循環小数

Problem 26 - Project Euler d < 1000について、1/dの順環節が最長となるdを求めよ。 以下解答

Project Euler Problem 25 - 1000桁のフィボナッチ数

Problem 25 - Project Euler フィボナッチ数が1000桁に達するのは何項目か。 以下解答。

Project Euler Problem 24 - 順列の辞書順ソート

Problem 24 - Project Euler 順列とは要素の並び替えのことである。たとえば3124は数字1, 2, 3, 4の並び替えで得られる順列の一つだ。全ての順列をアルファベット順またはABC順に並び替えたとして、それを辞書順と呼ぶことにする。0, 1, 2の順列を辞書順に並…

Project Euler Problem 23 - 2つの過剰数の和ではない自然数の和

自分自身を除く約数の和が自分自身に等しい自然数は完全数と呼ばれる(e.g. 6 = 1 + 2 + 3)が、そうでないものについて、不足数、過剰数という概念がある。 不足数: 自分自身を除く約数の和が自分自身より小さい自然数 過剰数: 自分自身を除く約数の和が自分…

Rによるハンバーガー統計学 #3

(引き続きハンバーガー統計学にようこそ!の第3章をRでやってみたものです。) 3.1 チキンの売上は少ないのか このようなタイプのデータを「とりあえずプロットする」方法として、モザイクプロットというものがある。 sales <- matrix(c(435, 265, 165, 135),…

Rによるハンバーガー統計学 #2

(引き続きハンバーガー統計学にようこそ!の第2章をRでやってみたものです。) 2.1 平均的ポテトを推定する 前回も説明したとおり、標準のvar()、sd()でそれぞれ不偏分散、標本標準偏差が計算される。 wakupote <- c(47, 51, 49, 50, 49, 46, 51, 48, 52, 49)…

Rによるハンバーガー統計学 #1

(ハンバーガー統計学にようこそ!をRでやってみたものです。) 1.1 ポテトの長さの平均は # ワクワクバーガーのポテトの長さデータ waku <- c(3.5, 4.2, 4.9, 4.6, 2.8, 5.6, 4.2, 4.9, 4.4, 3.7, 3.8, 4.0, 5.2, 3.9, 5.6, 5.3, 5.0, 4.7, 4.0, 3.1, 5.8, 3.…

なんでn-1なんですか

不偏分散はなぜnではなくn-1で割るのか、という問題。 以前似たようなことやったけどきちんと証明していなかったのと今ならどう書くか試してみたかったので。 証明をする 確率変数の実現値を、平均をとする。 まず、の期待値を求めよう。 任意の数を足して引…

Project Euler Problem 21

問題の概要 Problem 21 - PukiWiki d(n)をnの「真の約数」の和とする。 「真の約数」はnの約数のうちnを除外したものと定義する。 d(a) == b かつ d(a) == bであるようなaとbをAmicable numbers(友愛数)と呼ぶ。 完全数(すなわちa == b)は除外する。 10000以…

プランクの法則を綺麗にプロットしたい

技術的に難しい部分とか特に無いのでこちらで。 プランクの法則 Wikipediaで確認しよう。ちなみに英語版のほうが詳しいぞ。 プランクの法則 - Wikipedia あまりきちんと説明するとボロがでるのでいい加減に説明すると、暖かいものほど強い光を出して、暖かい…

有機質資材からの窒素放出量を予測したい

有機質資材からの窒素放出 ほ場に有機質資材、例えば牛ふん堆肥であったり稲わらであったりというものを施用した場合、これらに含まれている窒素というのは必ずしもすぐには使いやすい形にならない。有機質資材中の窒素は基本的には微生物の分解を受けること…

Project Euler Problem 11:15

Problem 11: Largest product in a grid 問題自体は難しくないし計算時間もかからない。文字列の読み込みと添字操作の練習。 Problem 12: Highly divisible triangular number gmpを使って無理矢理やっても2〜3秒だが、overviewにより効率的な方法が書いてあ…

RGRからゴンペルツ曲線を推定する 3

R

ゴンペルツ曲線では相対成長速度と重量の関係はどうなってるのかと思って適当に回帰してみたらが良く当てはまったので、この仮定(相対成長速度は重量の対数に比例して減少する)のもとに微分方程式を解いてみると、ちゃんとゴンペルツ関数が出て来る。ここで…