jnobuyukiのブログ

JavaScriptとR言語を中心に研究活動に役立つwebアプリケーション技術について考えていきます。twitter ID: @j_nobuyuki

Unity C#で時間の取得

突然ですが実験的な研究のフレームワークとしてUnityを使い始めました。Unityはコーディングなしでも手軽にゲームを作成できる強力なツールです。(なんでUnityなのかはまた別の機会に書きます。)今回は、Unity内で時間を取得する方法をまとめておきます。 …

R言語でワードクラウドを作る

今回は、R言語のwordcloudパッケージを利用して、アンケートの自由記述回答をwordcloud形式で表現する方法をまとめます。 ワードクラウドとは? コトバンクによれば「文章中で出現頻度が高い単語を複数選び出し、その頻度に応じた大きさで図示する手法」との…

R言語でパッケージから関数を呼び出す

本日は、なんとなく気になっていた関数の呼び出し方のバリエーションをまとめておきます。 パッケージ内の関数 R言語の最大の強みの一つは、パッケージによる機能拡張でしょう。世界中の開発者がオープンな環境で次々に強力な関数を開発して公開しています。…

R言語で形態素解析

今回は、MeCabというオープンソースの形態素解析エンジンをRから使えるようにする方法を紹介します。いろいろな場所ですでに紹介のある内容ですが、紹介されているページのリンク先が有効でないこともあるので、2015年7月8日現在のやり方としてまとめ…

調べてみたら予想と違ったときに思うこと

最近はずっとR言語に関するまとめが続いたので、たまには単純に考えたことを書きます。 予想が外れるのは「失敗」か? 研究に関する色々な過程の中でも一番楽しいのは、実験や調査によって収集したデータを解析し始める瞬間です。「ああかもしれない」「こう…

R言語でウェブページから情報を抽出

今回は、R言語を利用してウェブページからデータとなる情報を抽出する(いわゆるスクレイピング)方法をまとめます。 参考にしたページ abrahamcow.hatenablog.comqiita.com XMLパッケージ ウエブページを書くための言語であるHTMLは、タグ形式で表現される…

R言語でデータの並べ替え

今回はR言語でデータの並べ方を変える方法を紹介します。 具体例 具体例を見てもらうのが一番わかりやすいので、先に何をしたいのかを示します。 例えばあるデータがこんな風に並べられているとします。 ID preTest postTest 1 100 90 2 85 95 これをこのよ…

R言語でデータセットの一部を抜き出す

今回は、データの一部を抜き出すときに便利なsubset関数の使い方をまとめます。 subset関数 subset関数の引数は以下の通りです。 x データフレームオブジェクト subset 抜き出す条件式 欠損値は自動的に除外されます select 抜き出す変数名。データフレーム…

IPythonからJupyterへの移行とR用カーネルの導入

前回、ipython notebookをOSXに導入する方法をまとめました。webbeginner.hatenablog.comそこでも少しだけ書いたのですが、ipythonはどんどん進化しており、python以外のプログラム言語も動くようになってきています。そこで今回はipythonからJupyterへの移…

OSXでipython notebookを使う

今回は、少し古い情報になってしまったのですが、ipython notebookをOSXに導入する方法をメモ代わりに残します。 そもそもipython notebookとは? ipython notebookは、pythonのインタラクティブな環境をブラウザで実現する仕組みです。pythonのコード、その…

R言語で変数を変換する

前回に引き続き、データハンドリングに利用できる関数の使い方をまとめます。 今回は、データの単位やスケールの変換に利用できるtransform関数を見てみます。 transform関数 transform関数はデータフレーム内に変数を追加する関数です。既にある変数を変換…

R言語で数量データをカテゴリーデータに変換

前回データハンドリングとその方法について考えました。データハンドリングはスクリプトを利用して - jnobuyukiのブログwebbeginner.hatenablog.com今回は、データハンドリングに利用できる関数としてcut関数を取り上げ、使用上のポイントをまとめます。 cut…

データハンドリングはスクリプトを利用して

欠損値や外れ値の設定、数量データをカテゴリーデータに変換、データの並べ方の変更などいわゆるデータハンドリングについて思うところをまとめておきます。 データハンドリングは、データ解析のなかでも最も大事 今更強調して言うことでもないかもしれませ…

R言語で作成した図をEPS形式で保存する

R言語の特徴の1つに、強力なグラフ化機能が挙げられます。標準でインストールされているplot()関数は、ちょっとしたデータの確認に便利ですし、ggplot2パッケージのggplot()関数を使えば、論文に載せる品質で図を作成できます。今回は、R言語で作った図をEP…

R言語を利用して分散説明率と効果量fの関係を図示する

久しぶりのブログ記事です。今回は統計の話をします。 検定の効果量 何かの現象の原因を突き止めたい場合に、実験や調査で3つ以上の条件の間に、偶然と呼ぶには大きすぎる差があるかどうかを検証する方法として分散分析があります。この分析では、サンプル…

Windows 7 にnode.jsをインストールしようとしてはまったこと

node.js はサーバーサイドのJavaScript環境のためのライブラリです。その使い方は、既に色々なウェブページで紹介されています。 第一回 Node.jsでどんなことができる?|マルチデバイスLab. - Multi Device Lab. いまアツいJavaScript!ゼロから始めるNode.…

オープンデータを用いたデータの可視化

今回は、公開されているデータを利用して、仮説検証型のデータの可視化をやってみます。 きっかけ Googleの及川卓也氏のブログで、先日、興味深いブログ記事を目にしました。地方自治体公式サイトのスマートフォン対応 - Nothing ventured, nothing gained.…

統計解析上達のポイント(3)

前回までで、2回ほど統計解析を使いこなすポイントについての私的な考えを述べてきました。最後に、統計解析を学ぶ上でのポイントを2点ほど紹介します。 分からないことは人に聞こう 特に、仮説の検証のために統計解析を利用していると「これでいいのか?」…

統計解析上達のポイント(2)

前回に続いて、統計解析上達のポイントとして、統計解析を利用する目的について考えてみましょう。 統計解析の目的 統計解析には大きく分けて、記述統計と推理統計があります。記述統計では、データについての数量的性質を述べることを目的とします。一方、…

統計解析上達のポイント(1)

先日、統計に関する勉強会を聴いていたら次のようなお願いをされました。 「統計が苦手という文系の学生のために、統計解析上達のポイントを一言でコメントしてほしい。」正直に言うと、なかなか一言でというのは難しいなと感じました。そこで、即席のスライ…

R言語でデータのパーセンタイルを計算する

数値データの要約(summary関数)を使うと、R言語では簡単に4分位数(25%パーセンタイル、中央値、75%パーセンタイル)を計算できます。でも、いわゆるパーセンタイル値(100分位数)は簡単に計算できないようです。(関数を知らないだけかもしれないです)…

R言語でインターネットからファイルをダウンロードする

最近、オープンデータと呼ばれる情報公開の動きがネット上で見られるようになりました。(まだまだたくさんとはいえませんが)これを利用して何か分析したいとしましょう。まずブラウザを経由してデータをダウンロードします。次にエクセルなどでファイルの…

R言語で行列を結合する:rbindとcbind

R言語のちょっとした使い方のヒントです。今回は複数の行列(matrix)を結合するための関数rbindとcbindを紹介します。 rbindとcbind rbindとcbindの違いは結合の方向です。rbindは縦につなげて、cbindは横につなげます。データ解析で行列オブジェクトを使用…

ウェブフォントの使い方(2):表示タイミングを制御する場合

ウェブフォントを利用すると個性的なテキスト表示ができますと前に書きました。 ウエブフォントの使い方 - jnobuyukiのブログいろいろ実験してみたところ、表示に関して、ブラウザのレンダリングでうまくいかないところがあったので、シェアします。 ウェブ…

JavaScriptを利用してリスト要素の順序をランダム化

前にR言語を利用してリスト要素の順序をランダム化というのをやりました。 R言語を利用してリスト要素の順序をランダム化 - jnobuyukiのブログ今回は同じことをJavaScriptでやってみます。 やり方その1: 任意の二つの要素を並べ替える 配列の中から適当に2…

R言語を利用してリスト要素の順序をランダム化

今回は少しトリッキーというかあまりほかの人には役立たないかもしれない話題です。リストを何かの順序で規則正しく並べ替えることはよくあると思います。順番良く並べてリスト全体を見やすくするようなときです。今回は、この逆で順序良く並んでいるものを…

t検定の検出力:2群のサンプルサイズが異なる場合

今回は、t検定の検出力について簡単なシミュレーションの結果を紹介します。検出力とは、帰無仮説を棄却することが真である状況で、正しく帰無仮説を棄却できる確率のことです。*1 今回紹介するt検定の場合、二群が同じ母集団を持つことを帰無仮説とします…

文字ごとのフォントを変えてみる

特定の要素やある段落のフォントを設定するのはCSSで簡単に設定できます。しかし、今回は一続きの文の各文字のフォントを変えてみます。こういう時はJavaScriptが便利です。 テキストボックスの設定(HTML) 今回は、入力された文を読み取って、各文字のいろい…

ウエブフォントの使い方

ウエブフォントを使うと、個性的なテキスト表示が可能です。やり方はとても簡単なのでメモとしてここにまとめておきます。 font-faceの設定 フォントの属性をCSSのなかでfont-faceとして設定します。font-familyでは後でフォントを呼び出すための名前を設定…

ブラウザからローカルにあるCGIプログラムへのアクセス(1)

前に、ブラウザからローカルファイルへのアクセス方法をまとめました*1。今回は、ローカルにあるCGIプログラムへのアクセス方法をまとめます。第1回の今回は、pythonを利用する方法の紹介です。 CGI用のサーバーモジュール 以前のローカルファイルへのアクセ…

アルファベットをキーコードに変換

キーを押して入力されたときに、キーコードを取得することは簡単です。今回は、既にアルファベットとして入力されている文字をキーコードに変換してみます。 キーコード表 キーコード表は、キーボードのキーに対応する数字をまとめた表です。以下の通りです…

SVG上のテキストの反転表示

今回はSVGオブジェクトの上に設定したテキストをいろいろな向きに反転する方法をまとめます。 ポイントは次の2点です。 text要素ではなくその上位のg要素で反転させる 反転に伴ってテキストが移動するので補正する 反転はテキスト要素ではなくg要素 SVGオブ…

読者参加型のメタ分析

この記事は Data Visualization Advent Calendar 2014 - Qiitaの9日目の記事です。 最近、心理学実験のデータをまとめていた研究者と一緒に可視化ツールを作成したので、それを紹介します。 概要 メタ分析とは何か? InPhonDBプロジェクト 可視化ツールの特…

ブラウザのHigh DPI対応

最近のラップトップPCは、非常に高い解像度のスクリーンのこともあります。今回は、高解像度のために多少手こずった話をまとめておきます。 指定したサイズにウインドウが生成されない 問題の発端はこれでした。Chrome拡張を利用したアプリを作成する際、man…

エビデンスベースの世の中になるために必要なものは何か?

誰かに何かを主張したいとき、相手に納得してもらう手段はいろいろあります。最近のビックデータ解析の流行は、そんな説得の手段の一つになれるでしょうか。ビックデータ解析のようないわゆるエビデンスに基づく主張が社会に根付くかを考えていた時に気づい…

このブログのアクセス数が10,000になりました

リピーターの方も初めての方も、このブログを閲覧いただきありがとうございます。このブログのアクセス数が10,000を越えました。きりのいいところで、このブログのあり方をまとめます。 アクセス数の変化について 昨年の12月の末からブログを始めました。お…

レスポンシブに改行タグを無効化 2

前回に引き続き、レスポンシブな環境で、改行タグを効果的に無効化する方法を考えます。前回提案した方法は、大まかに表示幅を設定しました。今回は、表示されているテキストの幅と表示可能領域の幅を厳密に比べます。表示可能領域が、テキスト幅より狭くな…

レスポンシブに改行タグを無効化 1

ウェブページの中には、テキストを中央寄せに配置しているものがあります。中央寄せは、タイトルや見出しに使われるようです。そして、中央寄せの文はしばしば訳の分からない位置で改行されます。例えば以下のような場合です。 左端から右端まで、長い長い1…

form内のbuttonとform外のbuttonの違い

入力フォームを記入して、別のプログラムへ送信するときのボタンですが、formの中にあるか外にあるかで動作が異なります。若干はまったので、メモ代わりにまとめておきます*1。 formの中のbutton formの中にbuttonを設定するとクリックしたときに、submitさ…

多言語対応したウエブページで使う強調

今回は、多言語対応したウエブページで単語をどのように強調するかを考えます。個人のブログでは、多言語使用はほとんど問題にならなそうですが、多言語の文章をいかに等しく表現するかという問題として考えると面白いので、メモ代わりに書いてみます。 多言…

HTMLとCSSを利用した文中の文字の強調

今回は、文中の特定の単語を強調する方法をまとめておきます。 文中の文字の強調 英語の文であれば引用符””で囲んだり、下線を引いたり、文字をイタリック(斜体)やボールド(太字)にしたりします。日本語の文でも、これらの形式で単語が強調されることが…

JavaScriptでクロスブラウザ対応(2)

今回は、JavaScriptでテキストデータをファイルに書き出す方法とその際のクロスブラウザ対応*1を紹介します。 テキストデータをファイルに書き出す JavaScriptではFileAPIを利用してローカルファイルへアクセスできます*2。 今回は、File APIの中のBlobとい…

D3.jsを利用してセレクトボックスで任意の項目を初期値に設定する

HTMLでは、セレクトボックスで、多肢選択の質問ができます。選択肢をセレクトボックスに設定するのは、簡単ですが、任意の項目を初期値にする際に、ちょっとはまったので、メモを残します。 セレクトボックスの設置 まずはHTMLでセレクトボックスを作ります…

Reveal.jsでスライドの背景画像を設定する

JavaScriptをベースにブラウザでプレゼンテーションスライドを作るにはReveal.jsが便利です。今回は、スライドに背景画像を追加する方法を紹介します。 sectionに追加パラメータを設定する。 背景画像を追加したいsectionにdata-background="ファイル名"を追…

JavaScriptでクロスブラウザ対応(1)

今回は、クロスブラウザ対応が必要な項目としてオブジェクト内の文字列の取得と設定をとりあげます。極めて基本的なオブジェクトにも関わらずクロスブラウザ対応が必要です。 (追記2014/10/15: その後調べた結果、クロスブラウザ対応の状況が変わっているこ…

Javascriptでブラウザの判別

今回は、クロスブラウザ対応(異なるブラウザで動作や表示をそろえること)に向けて、JavaScriptで使用中のブラウザを調べる方法をまとめておきます。 ブラウザごとにJavaScriptの動作や表示が違うのはなぜ? ブラウザはそれぞれ異なるJavaScriptエンジンが…

R言語scale()での正規化バリエーション

以前、データの正規化にはいろいろな方法があることを述べました。 数量の正規化:方法の違いは何を意味するか? - jnobuyukiのブログいろいろな正規化をやってくれるコマンドにR言語のscale()があります。 この関数は、何も考えずに使ってもそれなりに動…

Google スプレッドシート グラフを画像ファイルに簡単保存

表計算ソフトで作成したグラフをpngやjpgなどの画像として保存して、プレゼンテーションに使いたいことがあります。MSエクセルで簡単にグラフを作成できますが、できたグラフは直接画像フォーマットのファイルで保存できません。Google スプレッドシートで作…

Google スプレッドシート 区切り文字を指定して文字列を複数セルに分割

解析をテキストファイルで出力してから、MSエクセルに貼り付けてグラフにということがあります。これをGoogle Spread Sheetsで行う方法のメモです。 split() split(分割したいセル, 区切り文字) これだけです。例えば a1に"1,2,3,4,5"という文字列が入って…

ChromeでshowModalDialog()を使い続ける方法

HTML5の標準で動くjavascript関数にshowModalDialog()というのがあります。この関数がChromeのバージョン37から使えなくなっているのですが、しばらくの間使い続ける方法を紹介します*1。 2014/09/19追記:showModalDialog()を有効にし続けることで、リスク…