読者です 読者をやめる 読者になる 読者になる

歩いたら休め

If the implementation is easy to explain, it may be a good idea.

R

【R】「20代のエンジニアの間で本当にPHPは廃れたのか?」を集計する

前回の記事で、転職ドラフトのデータをスクレイピングし、簡単な分析を行いました。 kiito.hatenablog.com ただし、こちらの記事の時点では、転職ドラフトは終わっておらず、中途半端なデータの状態のまま集計していました。 特に最終日に多くの指名が入って…

【R】転職ドラフトのデータをスクレイピングして分析(集計)する

お久しぶりです。 最近上司と「機械学習とかその辺の技術が発展したら、真っ先に自動化されて仕事なくなるのはハンパなエンジニアと中間管理職だよね〜」という話をして危機感を募らせている @takeshi0406 です。 WEBエンジニアにはご存じの方も多いと思いま…

【R】Yコンビネータ(不動点コンビネータ)をRで写経する

R

最近関数型言語(主にHaskell)で遊んでいます。 その中「ラムダ式の中で再帰を行うことができる」Yコンビネータという概念が出てきたのですが、ちょっと理解できなかったので、Rで実装してみたという記事です。 Pythonによる実装は以下の記事に詳しく解説さ…

【R/Python】rChatworkとpychatworkをチャットワークAPIのバージョンアップに対応させました

RとPythonのチャットワーク用ライブラリを、APIのバージョンアップに早めに対応しました。 ライブラリの実装練習に作った割に、なんだかんだ自分でいろいろと利用しているのでビックリです。 help.chatwork.com v1からv2への移行期間として、下記の停止日ま…

【R Advent Calendar】Rプログラマーのための関数型プログラミングの学び方

R Advent Calendar 2016の5日目です。よろしくお願いします。 最近、R界隈ではHadley Wickham氏が中心となって開発しているtidyverseと呼ばれるライブラリ群が流行っています。 彼がWelcome to the Tidyverseという記事の中で、次のような宣言を行っています…

【R】weblioの住宅用語辞典をスクレイピングして住宅関連の単語のcsvを作る

自然言語処理をやっている人はよく辞書の整備が大変だと言います。 そんな話をしていたところ、「自分が詳しくない分野の言葉を知るときはweblio辞書が便利だよ」という知見を教えてもらいました。 www.weblio.jp しかし、私は怠惰なプログラマーなので、ス…

【Python】RプログラマーのためのPython入門

会社に優秀な後輩が入ってきて、優秀な先輩(私でゎない)の助けを得ながら、立派な分析者・Rプログラマーとして成長しつつあります。 しかし、R言語だけで全ての作業が完結できるわけではありません。手元でデータを加工・分析するための環境としては素晴ら…

【R】絶対に身につけて欲しいR術

友人が、後輩にこちらの記事を紹介していました。 www.shiningmaru.com Excelの基本的な機能や、分析の心構えが過不足なく紹介されている素晴らしい記事だと思います!しかし、私は統計用環境のR言語が大好きで、分析のほとんどの場面で、RはExcelより簡単に…

【R】Rのライブラリ作成時に困ったこと×2

R

できるだけ簡単にRの定型作業が終わるよう、自作のライブラリを作って、簡単に引き継ぎ作業ができる状態を作りました。 (職場の優秀な先輩が、Rのコード資産を自分だけにしか使えず、定型作業をほかの人に引き継げずに闇を抱えてしまった姿を見てしまってい…

【R】テキストファイルからSQLを文字列として読み込む

R

Rを使っていると、DBに接続してSQLを投げる作業がよく発生します。 すると、大抵は、RPostgreSQLなどのDBを扱うライブラリを用いてDBに接続し、 SQLの文字列を用意し、ライブラリの関数の引数に指定するというコードを書くことになります。 ただ、SQLの文字…

【R】データベースのマスターテーブルから、重複&データの不整合のあるidを取り出すための書き捨てコード

明らかにバッドノウハウですが、関数型プログラミングのライブラリであるpurrrのサンプルコードにある data %>% split(.$カラム名) %>% purrr::map(データフレーム操作) のコンボを上手く決められたので、せっかくなのでブログに貼り付けておきます。 github…

【R】Rでchatworkにメッセージを投稿するライブラリ『rChatwork』を作りました

R

時間のかかる計算が終わったときに、Chatworkに通知させたいという需要があったので、Rからchatworkに投稿するライブラリを作りました。 github.com 英語が糞なのは気にしないでください。 Pythonistaなのでクラスベースのオブジェクト指向が理解しやすいた…

【R】(☞ ´。ω゜)☞ 全てのRプログラマーはLispを学ぶべきである!

R

Lispを使って、関数型言語の機能を過不足なく勉強できそうな本が発売されていました。 はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる (Software Design plus)作者: 五味弘,272出版社/メーカー: 技術評論社発売日: 20…

【R】RでPythonの"str".isdigit()みたいな操作

R

ルールに従っているidがあって、「idの冒頭2文字が数字かどうか」をチェックしたい案件がありました。 example_ids <- c("01_orange_0001001", "09_red_0001001", "aa_purple_0002002") Pythonであれば文字列のスライスとis_digitメソッドで簡単にチェックす…

【R】社内勉強会でRの紹介をするときの原案

R

私のいる会社はWEBサービスで成長してきた会社なので、 社内ではエンジニア≒WEBアプリケーションエンジニアという認識の人が多いです。 前任者の先輩が強力なRプログラマーで、すごい統計解析やツールを作っていたにも関わらず、 その結果が正しく理解され運…

【R】パイプ演算子ってdplyrやmagrittr独自の機能じゃなくて、F#が元ネタなんだね

R

Rのプログラマーは「Rって独特な言語だから、R言語独自の機能が多くて他の言語に応用が効かない」とか言いがちですが、そんなことは無いと思います。関数型言語(Scheme)の影響が強いので、ちょっと立ち位置は遠いのかもしれませんが。 例えば、以前私が「…

【R】そうです。Hadley Wickhamが僕の畏敬する天使様なのです

R

「Rのプログラマーは当たり前に思ってるけど、他の人達にとってはそうじゃないこと」をまとめておいて、 先輩や同僚から「Rって何が便利なの?使って or 勉強して得になるの?」って聞かれたときにパッと答えられるように備えておこうという記事です。 (自…

【R】『新米探偵、データ分析に挑む』を読んでいます

R

同僚のRプログラマーにおすすめのRの本は無いかと聞いたところ、 「新米探偵データ分析本→実務→(みんなのR→)advanced R」の順番に学ぶといいと聞き、新米探偵本を借りて読んでいます。 新米探偵、データ分析に挑む作者: 石田基広,shimano出版社/メーカー: …

【R】ふつうのスクリプト言語プログラマーのためのR言語入門

「他のスクリプト言語ならそれなりに触れるけど、Rって変な機能が多いから難しい」と感じている人のために、Rの独特な点、ハマりどころ、そして特にデータの集計での強力な機能やパッケージをまとめてみました。 社内のデータリソース移行の作業の中で、前任…

【R】bigrqueryパッケージでBigQueryにデータをインサートするとき、integer型の最大値で困った

RからGoogle BigQueryを操作できるbigrqueryが便利です。クエリを投げてローカルにデータを取得する他、データソース名やテーブル名を取得したり、テーブルを削除したりもできます。 github.com また、次のようにしてinsert_upload_jobを使って、データフレ…

【R】R6ライブラリを使ってクラスを作ってChatworkのAPIを叩いてみた

R R6

Pythonでプログラミングする際、「まずコードを書いて、ある程度コードが大きくなってきたらクラスを作って整理する」ということをよくします。 R言語ではなんだかオブジェクト指向の概念が特殊で、その辺の機能を敬遠していましたが、 「普通のオブジェクト…

【R】パイプで引数のリストを展開(Pythonのfunc(*args))してパイプで渡す方法を探しています

DBに何日分かデータが入っていなかったため、DBの中身をチェックする必要がありました。 そこで、以下の日付の範囲を取る関数を作り、DBの戻り値にないものを探すようにしました。 library(dplyr) library(purrr) # 日付の範囲を取る関数 date_range <- func…

【R】RからChatworkAPIを叩いて計算終了を通知する

社内でChatworkが使われているのですが、Rの計算が終わったときに通知してくれると便利だと思い、 ChatworkのAPIを叩いて通知する関数を作ってみました。 chatworkにbotアカウントを用意し、計算終了時にメッセージを投稿させます。 こちらのコードを参考に…

【R】ファイルサーバー上のファイルの更新を定期的に確認するスクリプトを作成中

R

弊社には古より伝わったファイルサーバー上のExcelやPowerPointで色々な仕様書や必要な情報がやりとりされる文化があります。 (正直不便すぎるのでやめてほしいのですが、すぐに変更できるとは思えないし、過去の遺産もあるのでなんとか作業しなければいけ…

【R】Rで関数型プログラミング

R

最近Rを使っていて、dplyrなどの強力なパッケージで気軽にデータの成形ができることに感動しています。 先輩に渡してもらったコードの中で、tidyr::spreadにデータフレームをパイプ%>%で渡し、 データの成形を一気に終わらせていて、こいつはただごとではな…

【R】SQLのクエリをいい感じに作ってくれるRの関数

R

DBにクエリを投げてテストする際、RStudioからRPostgreSQLなどのライブラリを利用すると非常に便利です。 なぜかというと、DBからの戻り値をRのデータフレーム型の変数に格納することができ、 その値をR言語の豊富な関数によって集計することができるからで…

【ggplot】Pythonでggplotを使う

※自分用のメモなので手抜きです。 長らく謎だったPython版ggplotの使い方を書いてる方がいました。 >>R_Graphics_cookbook_in_sage -- Sage Python版ggplotがどれ位使えるかRグラフィックスクックブックの例題をSageで試してみた。 http://t.co/acRvUCjFHM —…

【R】arrows関数を使って相空間のベクトル場を書く

R

データ分析っぽいブログですが、自分の専門は物理です。 私はMATLABやgnuplotの使い方がよく分からず、描画関係では専らRを使っていました。そのときRで相空間のベクトル場を描いたことがあり、Rで似たことをやってる記事も無さそうなので一応まとめておきま…

【R】【Python】igraphやNetworkXで手持ちのデータをネットワークに変換してみよう

R Advent Calenderの18日目の記事です 「お手持ちのデータからネットワークを作成をしてみよう」というテーマです。 Rを使ったネットワークの解析(次数や媒介中心性、コミュニティ検出etc...)のやり方については様々な方が本やブログにまとめてらっしゃい…

【R】igraphを使ってお手持ちのデータをネットワークにしてみよう

R Advent Calenderの18日の記事(の草稿)です 「お手持ちのデータをネットワークとして扱う」までをお手伝いする記事です。 「複雑ネットワーク」「ネットワーク解析」という言葉を聞き、自分の仕事や研究にも役立つかもと思い「スケールフリー性」「○○中心…