のんびりののさん

何か面白いと思ったことや、自分の備忘録のためにブログをたまに綴ります。 Stata関連が多くなるかも。

Stataのテクニック

本当に久しぶりの投稿です。やっぱり根気が無いのかな。
今日は、Stataの覚書と言うか、マニュアルに載っていないようなお得なテクニックを紹介します。

Stataはコメントアウトをするために
*これ以下
//これ以下
/* この間 */
以上3種類の方法が良く知られています。
特に3番目の/* */これは使い勝手が良く、複数に渡るコマンドをコメントアウトする常套手段です。

3番目の方法でほとんど事足りますが、時々/* */の中にさらにコメントアウトがあると
お互いの関係が分かりにくくなります。
そこで紹介する方法は、コメントアウト全体をプログラムにしてしまう方法です。

program name_nandemo_OK
ここにコメントがならぶ
end
このコメントはプログラムの中身になりますが、プログラムが実行されるまでは中身が
解釈されることはないのでエラーは起きません。

プログラムを使う、もう一つのテクニックは、出力の制御です。
Stataは入力したコマンドがResults画面に出力されてしまいたいので
例えば、
1
2
3
と表示したい時に
di "1"
di "2"
di "3"
を実行しますが、次のように表示されてしまいます。
. di "1"
1

. di "2"
2

. di "3"
3
これを防ぐにはプログラムを使って
program display123
di "1"
di "2"
di "3"
end
として
display123を入力すれば
. display123
1
2
3
と期待通りに結果が帰ってきます!
ではまたいつかー!

OS10.6.5のMacBookを64bitで起動する!

ポチッと応援をお願いします!人気ブログランキングへ

またまた、久しぶりのブログ更新になってしまいましたが、今回は、ごく一部の人にしか関係の無い記事です。

追記(2011/01/10):OS 10.6.6でも64bit起動できました!自分で書き換えたboot-k64.efiが読み込まれなくなっているだけなので、このステップ4から行えば大丈夫です。

私は、MacBook (Aluminum Late 2008)を使っていますが、このMacBook実は、標準では64bit起動ができないようになっています。私が調べたところ、RAMメモリが4GB以上で、CPUがIntel Core 2 Duo のMacBook、つまり、Late 2006以降のMacBookは、潜在的(ハード的)には64bit起動できるはずなのです。しかし、CPUやメモリ容量が対応していない機種を考慮した安全のためなのか、MacBook Proとの差別化をはかるためなのかは分かりませんがMacBook全般で、64bit起動できないようになっているようです。

ちなみに、64bit起動が標準でサポートされているMacBook Proなどでは、6と4を同時に押しながら起動すると64bit起動でますが、MacBookではこの方法は使えません。

私は、OSをSnow Leopardにした際にnijitaroさんのHOKYPOKY.BLOGを参考に64bit化したのですが、OSを10.6.5にアップデートしたところ、再び64bit起動できなくなってしまい、調べたところ再び64bit起動ができるようになったので、ここにまとめさせてもらいました。

手順はnijitaroさんのHOKYPOKY.BLOGそのままで、次の通りです。
  1. /System/Library/CoreServices/boot.efiをリネームしてコピー。
  2. コピーしたboot.efiをHexEditorにて編集。
  3. /System/Library/CoreServices/に編集したファイルをコピー。
  4. アクセス権限を変更し、起動時に編集したboot-k64.efiを読みこむように指定。
  5. 64bit起動モードに設定し再起動。
では、それぞれ順に見て行きましょう。

1. /System/Library/CoreServices/boot.efiをリネームしてコピー。

アプリケーション>ユーティリティフォルダの中にあるターミナルを開き以下のコマンドを入力します($は入力しません)。
$ cp /System/Library/CoreServices/boot.efi ~/boot-k64.efi
これは/System/Library/CoreServices/boot.efiをユーザーフォルダにboot-k64.efiという名前にリネームしてコピーするという意味です。

2. コピーしたboot.efiをHexEditorにて編集。

HexEditorはここからダウンロードできます。ユーザーフォルダにあるboot-k64.efiをHexEditorで開きます。
図のように、編集を許可するにチェックを入れて、◯で囲った部分の合計3箇所変更します。
  1. 0x28708 0x0を0x4に変更
  2. 0x2870c 0x0を0x1に変更
  3. 0x28710 0x0を0x2に変更

HexEdit01

3. /System/Library/CoreServices/に編集したファイルをコピー。

ターミナルに戻って以下を入力します。
$ sudo cp boot-k64.efi /System/Library/CoreServices/

ここで
password:
と表示されるので、管理者のパスワード(大体の人は自分のパスワード)を入力します。

4. アクセス権限を変更し、起動時に編集したboot-k64.efiを読みこむように指定。

ターミナルに続けて
$ cd /System/Library/CoreServices/
$ sudo chown root:wheel boot-k64.efi
と入力します。これでアクセス権限が変更されました。さらに
$ sudo chflags uchg boot-k64.efi
$ sudo bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot-k64.efi
と入力します。これで起動時にもともとのboot.efiではなく、新しく編集したboot-k64.efiを読み込むようになります。

5. 64bit起動モードに設定し再起動する。

A hat full of skyよりを32- or 64-bit Kernel Startup Mode Selector.appをダウンロードし、実行します。start in 64bit modeにチェックをいれて再起動すれば、64bitで起動できているはずです。

32- or 64-bit Kernel Startup Mode Selector.appを使わない方法もここに紹介されていました。
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
をテキストエディタで開いて
<key>Kernel Flags</key> 
<string></string>
を探し、
<key>Kernel Flags</key> 
<string>arch=x86_64</string>
と書き換えることでも可能です。

64bitで起動できているかどうかを確認する方法は、二つあります。一つは、Appleメニュー>このMacについて>詳しい情報(ボタン)を選び、システムプロファイラを起動します。システムソフトウェアの概要の 64 ビットカーネルと拡張機能を確かめると、”はい”になっていることを確かめます。
もう一つは、アクティビティモニタを起動して、kernel_taskというプロセス名を確認すると種類の項目が”Intel(64ビット)”となっていることを確かめます。

参考になったでしょうか?


その他、参考にしたサイト
  1. http://netkas.org/?p=189









米国サンフランシスコで留学New!! 掲示板へ
ご利用下さい。

スポンサードリンク







医師が教える科学的英語勉強法講義










シャープ電子辞書パピルス発売日:2007年2月9日













続・Excel複数シートからStataへのデータ取り込みは死んだ~復活篇!

ポチッと応援をお願いします!人気ブログランキングへ

随分久しぶりのブログ更新になってしまいました。書きたいことは色々あるんですが、なかなか進みません。今回は、以前に書いた記事の続きです。Rという無料・高機能統計解析ソフトが必要ですが、エクセルのマクロを使わない分、前回の方法よりもスマートかもしれません。

その他関連記事:複数シートを持ったEXCELからSTATAへのデータのインポート


さて今回もテーマは、いかにして簡単かつスマートに、”複数シートのエクセルデータをStataデータに変換するか!?”です。

一応、WindowsとMac、エクセル、R、Stataのバージョンの違いも考慮して書きましたが、筆者はMacOSXとエクセル2004(日本語版)、Stata v.10を使っているのでその辺りは読み替えて下さい。

説明が分かりやすいように、合計8枚の複数シートからなるexceloneweek.xlsという名前が付いたエクセルファイルを扱うとします。(あまり内容は関係ありませんが、Summaryデータが入ったシート1枚と同じデータ形式でDay1からDay7のデータが入った7枚のシートを想定しています。)
手順の概要は次の通りです。
  1. Rの準備。
  2. エクセルファイルの前処理。
  3. Rで自動処理。
ほら、前回より全然簡単そうでしょ。では、それぞれ順に見て行きましょう。

1. Rの準備。

ここの記事を参考にRをインストールしてください。RにはCUI版(マウスを使わずに全てコマンド入力で動かすもの)もありますが、上記リンクを参考にインストールすれば、通常はGUI版(一般的なソフトウェアのようにマウス操作もできる)がインストールできるはずです。インストール後は、Rを起動して、Rのメニューから"パッケージとデータ>パッケージインストーラ"を起動し、前もって次のファイルをインストールしておきます。必要ファイルはオンラインに接続されたコンピュータからは、このパッケージインストーラを使えばとても簡単にインストールできます。

foreign
gregmisc
#gregmiscを利用するためにはさらに次のファイルが必要です。
gdata
gtools
#いちおう上記ファイル動きますが、エラーを回避のために下記もインストールしておきましょう。
gmodels
gplots
caTools
bitops

Windows版のRではlibrary(RODBC)を使うエクセルシートの読み込み方法もあるようですが、確認していません。また、Windowsでlibrary(gregmisc)を使う際には、予めActive Perlをインストールしておく必要があるようですが、このリンク先記事が参考になるでしょう。

2. エクセルファイルの前処理。

単純なエクセルファイルであればこのステップは省略できますが、ここである程度処理をしておくとStataでの操作が楽になります。次の最終ステップで使うRのread.xls()関数はかなり賢く、エクセルのセルが計算式で入力されていてもちゃんと値として読み込んでくれます。また、セルが結合されていたり、日本語が入力されていても(Wide characterというエラーは出ますが)ちゃんと動きました。しかし、安全にデータを移行させることを考えると、次の3つはチェックしておくべきでしょう(Stataで操作を考えると日本語も事前に消しておいた方が無難でしょう)。
  1. 最初の行が簡潔で分かりやすい英字と数字の変数名であること。

  2. Rはエクセルからデータを取り込む際に自動的にエクセルの最初の行を変数名と認識します。また、Stataで変数名を扱うときには、英数字の簡潔な変数名が良いのでここでしっかり処理をしておきます。
  3. 複数シート全てでデータの行数が揃っていること。

  4. 通常エクセルには一行に一人(一つ)の個体のデータがあり、列に例えば年齢や性別など様々なデータが入ったWide形式で作成されることが多いと思います。複数シートの全てで個体の数(つまり行数)が揃っているべきです。
  5. エクセルのメインのデータ入力セル以外にコメントなどが入っていないこと。

  6. エクセルで作成したメインのデータ入力欄の欄外のセルにコメントのつもりで入力してもRはデータとして読み込んでしまいます。Rに取り込む前にこのようなコメントは削除しておくべきでしょう。エクセルで一括してこれらのコメントなどを消す、簡単で有効な方法があります。シフトキーを押しながら、エクセルのシート名タブをクリックし、複数のシートをアクティブにすることで、一括(串刺し)で行や列の削除などが出来るようになります。これを覚えておけば、わざわざエクセルでマクロを組む必要はなくなるでしょう。


3. Rで自動処理。


いよいよ最後のステップです。GUI版のRではファイルメニューから新規文書を選ぶことでテキスト入力ウインドウが作成出来ます。この文書に、Rのコマンドを入力しておくと、いつでも繰り返し同じ操作ができます。下記の内容をこの新規文書にコピー&ペーストし、適宜名前を付けて、拡張子が.Rで終わるR Source Fileフォーマットで保存しておきましょう。
#複数シートのエクセルファイルから自動的にStata用のデータファイルを作成
#Step1でインストールがちゃんと出来ていれば、次のコマンドが実行できます。
#出来ていなければ、必要なファイル名がエラー表示されるので追加インストールしましょう。
library(gregmisc)
library(foreign)
#下記はMac用のPass例ですが、Winな人は”C:?data?Stata_data?”のように修正してください。
setwd("~/Documents/Stata_data")

#次がメインのプログラムです。
#ここではdbという仮のリスト変数にエクセルシートの1から8枚目を読み込む指示をしています。
#対象とするエクセルファイルを上記Passに置いておきます。
#取り込むシートの枚数やファイル名は適宜変更してください。
#例えばシートを2枚目から5枚目まで取り込むときは1:8の変わりに2:5とします。
#この処理は読み込むシートの枚数にもよりますが時間がかかります。
db <- lapply(1:8,function(i){read.xls("exceloneweek.xls", sheet=i)})

#上記リスト変数からデータフレーム(Rではスプレッドシート形式のデータをこう呼びます)
#に変更するには次の二つの方法があります。方法1がお勧めです。

#方法1
statadata <- db[[1]]
for(i in 2:8){statadata <- merge(statadata,db[[i]])}
#2010/06/11追記:複数シートに同一の変数名がいくつもあると上手くいかないことがありました。
#次のように,by="基準となる変数名"を指定すると上手くいきました。
#for(i in 2:15){statadata <- merge(statadata,db[[i]],by="ID")}
#方法2
#statadata <- data.frame(db)

#最後に上記データフレームをStatanewdataという名前でStataのdtaファイル形式で保存します。
#version = 10は、データファイル形式がStataのどのバージョンのものか明示しています。
write.dta(statadata,"Statanewdata.dta", version = 10)

#これで完了ですが、R上でデータを確認したり、データを保存したい場合には下記を実行します。
#save(statadata,file="Statanewdata.RData")
#statadata<- edit(statadata)

方法1は、複数シートに同じ列名(変数名)があるときに、データを自動的に統合します。
方法2は、単純にデータをつなぎ合わせるのでエラーが起きにくいですが、Stataで重複したデータを削除する作業が必要になります。しかし、Rは重複した変数名の場合は、元の変数名、元の変数名1、元の変数名2と連番を自動的に付けるのでStataの次のコマンドで一括削除できます。
上の例では、方法1がアクティブで方法2はコメントアウトされているので、方法2で行う場合には、コマンドの先頭の#を削除して、方法1の方を逆に#でコメントアウトしてください。
gen 新しい変数名=元の変数名
drop 元の変数名*
#もちろん新しい変数名、元の変数名は英数で表記されているはずです。

最後にStataでデータを開いてちゃんと期待通りに取り込めているか確認してみましょう。以上です。
何か不明な点や間違いがあれば是非コメントを下さい。










米国サンフランシスコで留学New!! 掲示板へ
ご利用下さい。

スポンサードリンク







医師が教える科学的英語勉強法講義










シャープ電子辞書パピルス発売日:2007年2月9日













やっぱり時代はしりとりみたいですよ

ポチッと応援をお願いします!人気ブログランキングへ

お久しぶりです。


今回は、April Foolネタで短く書きます。



以前のしりとりの記事


以前にかなりハリキッて書いた記事ですが、Googleもやっと本気になったようですね。
詳しくは以下のリンクを見てください。
- 本日、Google検索にしりとり機能を追加しました!




最近興味を持っていること


今日はこんな感じでおわりです。ハイ。
最近ドロップシングというのを知りました。凄い時代になったもんです。
暇が出来たらやってみたいかも。
Google日本語入力使い続けています。
私には合っているようです。バージョンも知らないうちにアップしていて、
きょう と入力すると2010/04/01
いま  と入力すると時間も入力できます。
便利すぎです。
えーぷりるふーるって入れると英語にも変換できました。
めでたし、めでたし。



米国サンフランシスコで留学New!! 掲示板へ
ご利用下さい。


スポンサードリンク









医師が教える科学的英語勉強法講義















シャープ電子辞書パピルス発売日:2007年2月9日















中間管理職なら知っておくべきMac日本語変換事情の5つの法則3

共通テーマ:
Macな話題 テーマに参加中!
ポチッと応援をお願いします!人気ブログランキングへ
今年二本目もコンピュータ関連の記事になってしまいました。タイトルも飽きてきましたが誰かにはてブしてもらえるように、もう少し続けてみます。

今回は、MacOSXで利用できる無料から低価格帯の日本語変換ソフトの比較レビューです。特に変換ソフトに強いこだわりがあるわけでもなく、専門知識があるわけでもない筆者が独断と偏見で選んだ変換例文によるレビューです。

尚テスト環境は、MacBook (Aluminum Late 2008) + Mac OSX 10.6.2 + ことえり4.2.0 or かわせみ1.03 or GoogleJapaneseInput-0.8.188.0で、MacのカーネルはMacBookですが、ゴニョゴニョしたので64bit起動で行なっています。尚、32bit環境でも64bit環境でも、どの日本語変換ソフトも特に変わりなく動作していることを付け加えておきます。

テスト1 難しい専門用語変換

「ゆうどひ・きしねんりょ・しょうせいりゅうとう」
「」内の一括変換、以後同様。
正答例 尤度比・希死念慮・小青竜湯
  • ことえり 結う奴婢/岸年虜/小青龍刀
  • かわせみ 夕奴婢・岸燃料・小青竜刀
  • グーグル 尤度比・希死念慮・小青竜湯

テスト2 同音異字語を含む長文

「きしゃにきしゃできしゃしたきしゃはきょうきしゃかいけんにのぞむよていです」
正答例 貴社に汽車で帰社した記者は今日記者会見に臨む予定です
  • ことえり 貴社に汽車で帰社した記者は今日記者会見に臨む予定です
  • かわせみ 貴社に帰社で帰社した帰社は凶器社会権に望む予定です
  • グーグル 記者に汽車で帰社した記者は今日記者会見に臨む予定です

テスト3 同音異字語を含む長文2

テスト2の結果があまりにも予想外(ことえり大健闘)だったので、テスト3を追加しました。
「はしのはしとはしのはしはにているがちがう」

正答例 橋の端と箸の端は似ているが違う
  • ことえり 橋の橋と橋の橋は似ているが違う
  • かわせみ 橋の端と橋の端は似ているが違う
  • グーグル 橋の箸と箸の箸は似ているが違う

テスト4 誤用について

「あおいろといきとまとをえるはてんけいてきなにほんごのごようとされる。」
  • ことえり 青色と行きトマトをエル波典型的な日本語の誤用とされる.
  • かわせみ 青色と行きトマトをエルは典型的な日本語の誤用とされる。
  • グーグル 青色吐息と的を得るは典型的な日本語の誤用とされる.

変換精度について総評

ことえりは、やはり一昔と比べてかなり賢くなっている印象で大健闘です。 専門用語はやはり
ことえり<かわせみ<グーグル
が正確な印象。

長文一括変換はここには載せませんでしたが、3変換エンジンとも普通の文であれば非常に正確に変換します。
同音異字を含む文は、それぞれ特徴が垣間見れ面白いのですが、優劣は付けがたいと思います。
(少なくとも私は、長文を一括でというのはあまりしないのでそれほどこだわらない機能かもしれません。)

また、誤用については、グーグルは誤用もちゃんと変換できてしまう。ことえり、かわせみは誤用の指摘と言う親切(おせっかい?)はないが、候補として第一には出てこない。

その他特別な機能

ことえりとかわせみは変換途中で同音異字語の意味が出てくる。
かわせみとグーグルは「きょう」で日付入力ができる。

グーグルは前回入力した文やネットで有名なフレーズは最初の数文字を入力するだけで変換候補として出てくる。 ことえりとかわせみは、一旦確定した文字の再変換もできるようだが、私はその機能は使いこなしていません。

超主観的な変換速度について

  • ことえり 変換前の文字入力にもたつくことがあるが、漢字変換は一番早い。
  • かわせみ 変換前の文字入力でもたつくことはほぼなし、漢字変換も早い。
  • グーグル 変換前の文字入力、漢字変換とももたつくことがある。
しかし、上記もたつきは、長時間起動しっぱなしのマックブック上で、タブをいくつも開けたウェブブラウザ上での 話なので、最適な環境ではほとんど差は感じないのかもしれません。

全然関係ありませんが、サザエさんとカツオが兄弟だったとはずっと知りませんでした。タラちゃんにいたってはカツオの弟だと思ってましたから。
海外にいると子どもの日本語教育について関心が高くなります。日本の歌やサザエさんのような漫画は子どもの日本語教育の補助になると思います。また、日本語を学んでいる外国人にもお勧めできると思います。


【送料無料】
※ATOK 2009 for Mac [ プレミアム ] 通常版 [ Mac ] ( 1273194 )


米国サンフランシスコで留学New!! 掲示板へ
ご利用下さい。
スポンサードリンク

医師が教える科学的英語勉強法講義





シャープ電子辞書パピルス発売日:2007年2月9日












		
スポンサードリンク

テレビ秋田放送の番組

「ゆうドキっ!」で

アナウンサーが番組内で

「これ、ほしいー。」

と言っていた

ボールペンが

爆発的な人気。


発売開始で

アッという間に完売。

リンク集
訪問者数
  • 今日:
  • 昨日:
  • 累計:

少しずつ充実させます!

livedoor プロフィール
All About スタイルストア[パソコンのある暮らしアンケート]
米国生活
-留学準備
1) VISAなど
-引っ越し
1) 郵便
2) 飛行機
-入国後の手続き
1) Social Security number (SSN)の申請
2) 日本領事館への入国の報告
-住居関連
1) 住む場所・駐車場の有無
2) 家具(机・椅子・ベットなど)
3) 固定電話
4) 携帯電話
5) テレビ
6) インターネット
7) トイレ(ウォッシュレットなど)
-移動手段
1) 公共交通機関
2) 車の購入と諸手続
3) 車の整備・修理サービス
4) 運転免許の取得
5) カーナビ
-お金
1) Tipの支払い方
2) 日本のクレジットカード
3) アメリカのクレジットカード
4) お金の支払い方 (小切手など)
5) 銀行口座の開設
6) 日本からの送金法
7) 税金(消費税など)
-保険・医療
1) 医療保険
2) 歯科保険・眼科保険
3) 薬
4) 自動車保険
5) 出産
6) 眼鏡・コンタクトレンズ
-教育
1) 保育園・幼稚園・小学校
2) サマースクール
3) 英語の勉強
スポンサードリンク
Blog内検索
QRコード
QRコード
  • ライブドアブログ