機略戦記

Maneuver warfare

Excelで作成されたSJISのCSVをシェルで扱いたい。というかUTF-8に変換したい。

sh

結論 cat from_excel.csv | iconv -f CP932 -t UTF-8 説明 iconvで文字コード変える Excelが使っている文字コードは厳密にはS-JISではなくてCP932

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

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