機略戦記

Maneuver warfare

データを可視化して傾向や特徴を知ったり仮説を発見したりしたい

R

前回までのあらすじ kaggle初挑戦: タイタニック乗客のプロフィールから生存率をランダムフォレストで予測してみた - 時系列のフリーランチshinya131-note.hatenablog.jp Rインストール kaggleチュートリアル課題やった 困っていること 与えられたデータがど…

kaggle初挑戦: タイタニック乗客のプロフィールから生存率をランダムフォレストで予測してみた

この記事はなに? kaggleというデータサイエンスのコンテストサイトにある、「タイタニック乗客の生存予測」というチュートリアル課題をやってみた記録です。 Rのインストールから初めて、3160チーム中1639位くらいまで行きました。(満足いかねぇ!) Kaggle…

コマンドラインでExcelのvlookupみたいな事したい。mコマンド使ったら出来た。

結論 mコマンドのmjoin使うのが良さそう mjoin k=Ticket m=ticket_duplicate_count_table i=train.csv 説明 i=で指定したファイルに、列を追加している。 結合のキーはk=で指定したカラム データソースはm=で指定したカラム このような操作をコマンドライン…

awkである列の値を重複する件数を付けて表示したい

awk

結論 cat train_plus_test.csv | awk -F, '{table[$10]=table[$10]+1} END{for (i in table) { print i, table[i] } }' | sort 説明 uniq -cみたいな事したい。 連想配列に集計したい値をkey、出現回数をvalueにして格納していく。

awkで指定した行のみを出力する。たとえば1行目以外を出力する

awk

結論 cat test.csv | awk -F',' 'FNR > 1 {print $0}' 1行目以外を出力する 説明 NFRに処理行数が入っているので、それをパターンに使ってフィルターする。 例えば、csvファイルのヘッダーだけ無視したい時とかに使える

awkでcsvに強引に一列追加する

awk

結論 cat test.csv | awk -F',' 'BEGIN{OFS=","} {$1=$1"," ; print $0}' 解説 一列目と二列目の間に列を追加したい。 一列目を「一列目に,を加えたもの」で上書きして出力している。 OFSに,を指定して出力をcsvにする

あるUnicodeの文字列が中国語かどうかを判定したい

このエントリを書いた人間はUnicodeや中国語について素人です。 このエントリに載っている情報は誤っている可能性があります。 結論 厳密では無いが、Unicode Han Database(Unihan)を参照して広東語または北京語の発音を持ちかつ音読みまたは訓読みの発音を…

Rubyの手軽なプロファイラ

結論 $ ruby -r profile 調べたいやつ.rb #=> メソッドの呼び出し回数とか実行時間とかがワラワラと表示される 詳細 library profile

Googleの検索結果で一番上に来たページをtabキーで選択するショートカットが使えなくなった時に試すべきこと

結論 Googleのトップページに行き、「検索設定」から「インスタント検索の結果を常に表示する」を選択し、「保存」をする。 説明 そもそも何が問題だったの Googleの検索結果ページでこのようなショートカットキーが使えてたんだけどある日気づいたら使えな…

awkで、n番目のフィールドが条件に一致した時だけ処理したい

awk

結論 これ $ echo '1 1\n2 1\n3 1' | awk '$1 > 1' 2 1 3 1 説明 awkで、n番目のフィールドがパターンにマッチした時だけ処理したい - 時系列のフリーランチshinya131-note.hatenablog.jp これ、パターンマッチじゃなくて、不等号とか==でtrueの時だけ処理し…

あるファイルに重複する行が無いかチェックしたい

結論 cat あるファイル | sort | uniq -c | awk '$1 > 1' 解説 sortしてuniq -cすることで、1列目に出現回数、2列目に内容が出力される。 awkで1列目が2以上になっている行(=重複した行)を取り出してる。

セレクトボックスにインクリメンタルサーチが付いてるやついいね

課題 何らかのフォームに登録を行う時、セレクトボックスから地域を選ぶ操作が良く発生する。 この時、いちいち長々とセレクトボックスをスクロールするのがだるい。 解決策 Google Analyticsの登録フォームで前述のUIを見かけた。 スクロールするよりインク…

IoTで重要なのは「張り巡らされたセンサーネットワークから得られるデータでデータ分析ができる」という点なのでは

Webやゲームの世界では、ユーザーがどのような行動をしているのか全てのデータが取れた。 電子化された金融取引もプレイヤーの大半の行動がデータとして取れる。*1 そこでのデータ分析の威力は凄かった。 そして、IoTでそこら中にネットワークに接続されたセ…

xargsで任意の位置にパラメーターを渡したい

結論 -Iオプションを使う。 find .| xargs -I{} cp {} ~/scenario Man page of XARGS 解説 -Iオプションで置換対象文字を指定できる。

awkで、n番目のフィールドがパターンにマッチした時だけ処理したい

awk

結論 1番目のフィールドにキーワードが含まれる場合だけ処理する場合 awk '$1 ~ /キーワード/' 説明 1フィールド目に1を含む行だけ処理したい。 この例だと1行目だけを処理したい。 $ echo '1 a1\n2 b1\n3 c1' 1 a1 2 b1 3 c1 こうすると、2フィールド目に含…

最近の勉強会で良く言及されている単語を調べたい

こういうことをしています。雑な書捨てスクリプトです。 APIでATNDやconnpassの勉強会情報を取ってくる。 mecabで形態素解析して単語にばらす。 単語をカウント。 # キーワードに一致するイベントのディスプリプション等を取得 curl -s 'http://connpass.com…

形態素解析ツールMecabをbrewでインストールする

$ brew install mecab ==> Summary /usr/local/Cellar/mecab/0.996: 18 files, 4.5M $ brew install mecab-ipadic ==> make install /usr/local/Cellar/mecab-ipadic/2.7.0-20070801: 6 files, 16K, built in 18 seconds 普通にやる。するとできる。 参考:…

ATNDに掲載されているイベントのタイトル、概要、event_idなどをCSVで取得するワンライナー

jq

結論 curl -s 'http://api.atnd.org/events/?format=json&count=100' | jq '.events[].event | [.event_id, .title, .catch, .description] | @csv' 概要 curlで取得したjsonをjqで加工する。 解説 ATNDのAPIでjsonを所得する curl -s 'http://api.atnd.org/…

2012年のうるう秒で何かトラブルが起きてたけどなんだっけ

LinuxでCPUの使用率が異常に高くなる現象 date コマンドで時刻を設定し直すか、OSを再起動すると直る この記事が(とても)詳しい。しかも冒頭に要約がついてて親切。 2012 年 7 月 1 日のうるう秒挿入時に発生した Linux カーネルの不具合に関する情報

『マッドマックス 怒りのデス・ロード』を見た感想

最高 大ヒット上映中!映画『マッドマックス 怒りのデス・ロード』公式サイトwwws.warnerbros.co.jp

String#splitに引数を指定しないと空白文字でsplitされるというのを今日しった

される。 [4] pry(main)> "1\n2\n3\n4".split => ["1", "2", "3", "4"] !? [5] pry(main)> "1\n2\n3\n4".split(nil) => ["1", "2", "3", "4"] [6] pry(main)> "1\n2\n3\n4".split(' ') => ["1", "2", "3", "4"] instance method String#split nilや' 'を与え…

Railsで条件に一致するレコードを1000件づつ取得して処理するやつなんだっけ

Railsで条件に一致するレコードを1000件づつ取得して処理するやつなんだっけ 結論 #find_each find_each - リファレンス - - Railsドキュメント 仕組みとよもやま ソース rails/railsgithub.com 詳しく読んでないけど、primary_keyでsortしたあとoffsetとlim…

シアター宙【ソラ】と言うプラネタリウムを逆さにしたようなアミューズメントが良かった

こういうやつです。 宇宙ミュージアム『TeNQ(テンキュー)』 東京ドームシティwww.tokyo-dome.co.jp どこで見れるの 水道橋にあるTenQという施設で見れる。 予約していったほうが良い。 ここから予約できる。 http://www.tokyo-dome.co.jp/tenq/ticket/…

Hashの中から特定のKeyを持ったValueだけを再帰的に取り出したい

このようなHashのなかから、keyが:targetである要素を再帰的に取得したい。 {a: {b: {c: {d: {e: {target: :f}}}}}, f: [:g, :h, {target: [:i]}], j: {target: nil}} こうしてみた 再帰的に取得したいので再帰的に取得する。 # keyを持ってる要素を再帰的に…

ActiveRecordで日付ごとにgroup byしたい

結論 Order.select("date(created_at) as ordered_date, sum(price) as total_price").group("date(created_at)") 説明 Rails Guidesという素晴らしい資料があり、そこで紹介されている。 Ruby on Rails ガイド:体系的に Rails を学ぼうrailsguides.jp

数十人以上で飲み会を開きたいが会場が見つけられない時に便利なサイト

ここ: スマート幹事くん/ クーポンのホットペッパー 飲み会の要件を書いておくと、複数のお店から提案が来るので、一番気に入った店を予約する事ができる。 少なくとも自分から店に連絡を取るより圧倒的に効率が良い程度の速度と件数の提案が貰えた。 ちなみ…

指定したディレクトリにある全てのテキストファイルの内容をファイル名と共に出力したい

awk

結論 awkでできる $ awk '{print FILENAME $0}' ./target_directory/* filename_a 1 filename_a 2 filename_a 3 filename_b 1 filename_b 2 filename_b 3 filename_c 1 filename_c 2 filename_c 3 説明 FILENAMEで現在読み込んでいるファイル名 $0で読み込ん…

rubyでtmpfileを安全に簡単に扱いたい

標準ライブラリにある。 class Tempfile Rubyist Magazine - 標準添付ライブラリ紹介 【第 15 回】 tmpdir, tempfile

net-sftpでポートを指定してsftpしたい

こうする Net::SFTP.start('host', 'username', :password => 'password', :port => port) do |sftp| # ... end 参考: net-ssh/net-sftpgithub.com

Rubyでsftp使いたい時ってどのGme使うのが良いの?

分からんけど、ダウンロード数はnet-sftpがダントツだった。 net-sftp | RubyGems.org | your community gem host ダントツの様子です。 search | RubyGems.org | your community gem host

AWKで現在読み込んでいる行の次の行を表示したい

awk

結論 cat ~/.ssh/config | awk '/xxx-xxx-01/ { print ; getline; print }' とりあえず出来た 注意点: getlineは色々注意点があるようだ(把握してない) http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_074 説明 こういうファイルで、Hostに対応…

awkで「右側からn番目のフィールド」を取り扱いたい

awk

結論 こう $(NF-n) 説明 awk '{print $1}' # 左から1番目のフィールドをprint awk '{print $NF}' # 一番右のフィールドをprint awk '{print $(NF-1)}' # 右からn番目のフィールドをprint NFにフィールド数が入っているので、それを使う

Githubで許可された人だけがpull-requestをマージできるようにしたい

結論 そのような方法をGithubが提供しているUIで実現する方法はない(たぶん) 代わりに許可された人以外がpull-requestをマージしたら検知できる方法を考えてみた。 想定している状況 Githubを使ってチームでコンテンツを作っている場合に、 「エンジニア以外…

変な文字を含むファイル名が無いかチェックしたい

結論 find .で全ファイル名を取得して正規表現で探す $ find . -type f | awk -F / '{print $NF}' | awk '!/^[a-zA-Z0-9._-]+$/' has_space_file_name 2.png has_ampersand_file&name.jpg 日本語のファイル名.txt 説明 find . -type f | # 全ファイル名を取…

rails console上で、あるメソッドが定義されているファイルをshellを使わず直接エディタで開きたい

結論 # Rails.cache.read の定義ファイルを開きたい # 以下を実行すると、おもむろにatomが立ち上がる pry(main)> `atom #{Rails.cache.method(:read).source_location.first}` 解説 あるメソッドがどのファイルに定義されているか得る #methodでMethodオブ…

Dockにあるアイコンを全部けした。Alfredの使用を強制するために

結果 こうなった よさそう 解説 アプリを起動するときにDockに置いた ショートカットをクリックしたりしてはいけない マウスを使うと効率が悪い。Alfredなどでキーボードから起動しよう。 長期的に見て効率が悪い方法(マウスによる操作)が短期的にみて効率…

awkの"パターン"でできることのメモ

awk

入力例 $ input.txt a2 a3 b1 b2 b3 c1 c2 c3 基本的なやつ 正規表現に一致した行だけを処理する $ awk '/a/' input.txt a1 a2 a3 複数のパターンの組合せ or $ awk '/a/ || /b/' input.txt a1 a2 a3 b1 b2 b3 and $ awk '/a/ && /1/' input.txt a1 その他 n…

Pryの結果に表示されるのって「実行したコードの戻り値を`#inspect`したもの」であってるんだっけ

結論 あってる(たぶん) 調べ方 適当なClassを作って評価してみる。 これが戻り値の#inspectなんじゃないかと思っており、それを確かめたい。 > class AnyClass ; end #=> nil > AnyClass #=> AnyClass #inspectを上書き。実行されたら#callerを吐き出すよ…

Serverkitで`brew tap`をしたい

結論 recipeでこうする - type: homebrew_tap name: peco/peco 使用例 - type: homebrew_tap name: peco/peco - type: package name: peco ここに載ってた serverkit/serverkit-homebrewgithub.com よもやま そもそもbrew tapって? これは便利!Homebrewに追…

ActiveRecordで特定のモデルが持つカラム名などをconsoleから確認したくなった時

結論 モデルのクラス名を入れてEnter irb(main):012:0> Message => Message(id: integer, body: string, created_at: datetime, updated_at: datetime) 余談 どうして見れるんだっけ。 確かこれ#inspectの結果が表示されてるんだよな。 irb(main):013:0> Mes…

Alfredを使って、指定したディレクトリをatomから開きたい

結論 このWorkFlow使えばやれる。 https://github.com/franzheidl/alfred-workflows/tree/master/open-with-atom Alfred PowerPackを買う必要がある。 使い方 Alfredを起動 スペースでOpen File...モードにして、開きたいディレクトリを探す 開きたいディレ…

Macのスリープ、システム終了、ログアウト関連のショートカットキーがむやみに充実している

OS X:キーボードショートカット - Apple サポートsupport.apple.com 離席する時に、「option + command + 電源ボタンでスリープ」しか使わないなぁ。

バナナを凍らせた物が暑い時期のおやつとして最適

やり方 バナナを買ってくる 皮を全部むく 実を半分に割る 冷凍庫にしまう できあがり。 これが冷たくて、さっぱりした味で、おいしい。 今、近所のスーパーでバナナをひとふさ買ったら138円だった。コストパフォーマンスもなかなかである。 余談 自分は甘い…

Googleの検索結果で一番上に来たページをキーボードショートカットだけで開きたい

結論 Chromeの場合: 検索結果画面が表示された状態で、tabまたは↓を押すとカーソルがでてくるので、開きたいサイトにカーソルを合わせてEnterすると開く。 ↑, ↓でカーソルを上下させられるので、別に一番上以外のサイトも開ける。 safariでも大体にたような…

.zshrcを再読み込み

...する方法をど忘れした。 こう $ source .zshrc

Alfredから自分のブログ内をGoogle検索したい

結論 Alfredのcustom search機能を使えばできる。 Alfred Preferencesのcustom searchにhttps://www.google.co.jp/search?q=site%3Ahttp%3A%2F%2Fshinya131-note.hatenablog.jp%2F+{query}みたいに登録してキーワードを設定すれば、Alfredからキーワード + …

Serverkitで開発環境を自動構築するにあたって実際参考になるレシピファイル

結論 serverkitの作者であるr7kamuraさんのリポジトリにあるレシピがとても参考になるので、とにかく迷ったらここをみている。 r7kamura/dotfilesgithub.com その他メモ ちなみに私はこのような用途でserverkitを使っている。 複数台あるMacの環境をserverkt…

マネーフォワードに三井住友銀行の情報を連携させたいが契約者番号ってどこで確認できるの

マネーフォワードに三井住友銀行の情報を連携させたいが契約者番号ってどこで確認できるの 結論 SMBCダイレクトから確認できる。 ただしスマフォ版ではなく PCブラウザ版のサイトからしか確認できない(おそらく) トップページからログインして、登録情報を…

Macが起動するときに自動的に立ち上がるアプリを明示的に指定したい

やりたいこと 前回OSを終了した時に立ち上げていたアプリが、起動時に勝手に立ち上がる。 ← やめたい 毎回必ず使うアプリは自動で立ち上がるようにしたい。 やりかた 前回OSを終了した時に立ち上げていたアプリが勝手に立ち上がらないようにする方法 このチ…

MacのDashboardに大きくカレンダーを表示したい

結論 Web上で大きなカレンダーを探してきて、Webクリップとして表示すれば出来る。 解説 MacについているDashboardという機能が便利。 特にカンレだーが便利 でも、標準のカレンダーはサイズが小さい。もっと大きく表示したい。 Webクリップ機能で出来る Saf…