★データ解析備忘録★

ゆる〜い技術メモ

Tokyo.R #55 に参加してきた

Tokyo.R #55に参加してきました。 今回の会場はサイバーエージェント社。

今回は自分で補足できる内容がほとんどないので、現時点で集められたスライドをまとめるだけです。 ほぼ自分用メモです。 自分のLTについては別記事で補足を書きます。

初心者セッション

10分で分かるr言語入門ver2 (@doradora09)

今回のためのスライドは公開されていませんが、以下がほぼ同内容。

www.slideshare.net

続きを読む

R Presentationで長いRの出力を表示したい

R Studioでプレゼンのスライドが作れるR Presentationですが、Rの出力が長い場合スライドからはみ出てしまいます。
回避方法として、1枚目のスライドのところに以下のCSSを書いてやることで解決しました。

<style>
body {
    overflow: scroll;
}
</style>

ページ内に入りきらない部分はスクロールができるようになります。
.RPresはHTMLやCSSコマンドが直書きできるので一部分だけ変えたい時は便利ですね。
余裕ができたらR Presentation用のカスタムCSSを作ろうと思います。

補足

Twitterで教えていただいたのですが、R Presentationではなく{revealjs}パッケージ*1のテンプレートを使うことでも、スクロール可能なスライドが作れるようです。(要確認)

*1:ちなみにR Presentationはreveal.jsというJavascriptライブラリで動いています。

SASのマクロ変数を文字列中で呼び出したいときの注意

備忘録。

SASで文字列を入力したいとき、''(シングルクオーテーション)か""(ダブルクオーテーション)かはあまり気にせずに使って良いのですが、マクロ変数を使いたいときはちょっと変わってきます。

例えば、以下のような適当なマクロを作って呼び出したいとき、


SASでは以下のように解釈されます。

TITLE1 "Contents of Data Set newdata";
TITLE2 'Contents of Data Set &hoge';

つまり、マクロ変数を文字列中で呼び出したいときは""(ダブルクオーテーション)の中でのみ変数として評価されます。

これは、%doループとかでマクロの中で変数を呼び出したいときも同じです。

以上、簡単な備忘録でした。

Tokyo.R #54の振り返りと補足

6/18にTokyo.Rに参加したので、遅ればせながら振り返りと(自分の知識の範囲内での)補足をしたいと思います。

初心者セッション

10分で分かるR言語入門 ver.2.19

質疑

パッケージを手動で入れるには?
パッケージはinstalll.packagesや{githubinstall}パッケージでオンラインで入れるのが普通ですが、tar.gzやzipでパッケージをローカルからインストールしたいとき。
基本的にはzipやtar.gzを特定のディレクトリにいれてinstall.packagesをしてやれば入ります。以下はzipの例。

setwd("~/Downloads")
install.packages("hoge.zip", repos = NULL, type = "source")

初心者におすすめのサイトは?
qiita.com

プログレスバーを表示したい

  • {dplyr}およびその前身の{plyr}にその機能があります。

Home · MRAN

  • あとfor文の進捗状況を見たいときは以下が参考になります。

http://gg-hogehoge.hatenablog.com/entry/2013/08/18/095448
gg-hogehoge.hatenablog.com

  • Stanでベイズ推定をするときの事後分布からのサンプリング進捗はデフォルトで出てくるようになってます。
続きを読む

【SAS】PROC SQL では LIMIT 句が使えない

普通のSQLを書くとき、データが巨大だと一部をちら見するためにLIMIT 1000と書いて一部だけを抽出したりします。
SASPROC SQLではSQLの構文がほぼそのまま使えて便利なのですが、LIMIT句はどうやら使えないようです。
代わりにOUTOBS=1000で指定すれば良いそうです。
以下参考URL
communities.sas.com

コード例は以下になります。
hogeというデータセットからA列が30以上の行を1000個だけ取ってくることを考えます。

普通のSQLで書くと以下のように書けばよいです。

select A
from hoge
where A > 30
limit 1000

2016/05/04 追記
PROC SQLではできませんが、PROC FEDSQLならできるそうです。
データステップ100万回      SAS新手一生: PROC SQL では LIMIT 句が使えない けどPROC FEDSQLでは使えるよ。ついでにOFFSET句も。の話

SASYAMAさんに感謝!