sshでX windows system

sshでサーバーマシーンに接続して、Rで計算をちょくちょくしていると、

plot()関数のようなx windows systemを用いて、結果を描写する機会にたびたび遭遇します。

そこでssh接続するときに-Xのオプションをつけるとよいです。

ただし、これは手元の環境にXwindowsがあることが必須です。

したがって、Mac OS Xか、Linux、BSD等である必要があります。



$ ssh -X xxx.xxx.xx.x

これでいけます。

ためしに、

$ R

plot(rnorm(1000))


としてみるとxwindowsシステムがうまくいっているかを確認することができます。

zshがおすすめ。

zshはtabによる支援が非常に充実しているのでおすすめです。

ちなみに設定ファイルは、ホームディレクトリの下に.zshrcをつくればよいです。

$ vim ~/.zshrc


僕の場合、とりあえず、カラーでディレクトリを表示してほしいので、


alias ls="ls -G"

というエイリアスだけは書いておきます。

windowsとlinuxのデュアルブートについて

デュアルブートするときのFAT32のメリット。





以下引用。

DOSやLinuxからFAT32はアクセス(読み書き)できますが、NTFSは読み出ししかできません(できるようになったかも知れませんが)。つまり、何かトラブルがあって「このデータ(設定ファイルなど)のこの部分を修正したい」と思ってもNTFSではお手上げです。そのため私は、OSのあるCドライブはFAT32にしています。

OS Xでverboseモードで起動。

mac os xは、デフォルトでは起動プロセスを見ることができません。

そこで、command + v を押しながら起動するとverboseモードという起動プロセスの見ることのできるモードで起動できます。

また、verboseモードでの起動をデフォルトとするには

$ sudo nvram boot-args="-v"

と入力します。

また、元の起動モードに戻したいときは

sudo nvram boot-args=""

とします。

shutdownコマンドのオプションについて

Rで終了するまでに数時間かかるループを書いて、寝るときは、コンピュータが自動的にシャットだうんしてもらう必要があります。

そこで、shutdownコマンドにオプションをつけて実行してみます。


3時間後にシステムを終了する。
$ sudo shutdown -h +180

uniqコマンドを用いて重複した行の数をカウントする。

たとえば以下のようなファイルがあったとします(マイクロアレイなどのデータを想定しています)


$ cat example.txt
aaa
bbb
aaa
ccc
ddd
ccc
eee
fff
ggg
aaa


このファイルの中の重複行をカウントしたいと思います。
それには、sortコマンドでソートをかけたあとに、uniqコマンドにオプション-cを与えて実行します。すると以下のようになります。


$ sort example.txt | uniq -c
3 aaa
1 bbb
2 ccc
1 ddd
1 eee
1 fff
1 ggg


これはなかなか楽しめますね(^^)

Rのappend=Tの意味

appendというのは日本語で、「追加する」といったような意味です。

今まで、いろんな関数の引数であまり考えずに使ってきましたが、append=Tと明示して挙げると、

ファイルの内容を文字通りappendしてくれるわけです。

ですので、forループなんかをかけていて、毎回の計算結果を一つのファイルに出力したいときは、append=Tをつけてやればいいわけですね。

append=Tを使った簡単な例を一つ紹介します。


Rの起動
$ R

#Hello,worldを100回言わせるプログラム。ただし、毎回HELLO.txtというファイルに出力する。

for (i in 1:100){
cat("Hello, world!!¥n",file="HELLO.txt", append=T);
}


q()

$ cat HELLO.txt

Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
〜以下省略〜

これは結構使えそうですね。

Rを用いてHello, world!!

プログラミングをはじめて初めてに行うのが、hello,worldを画面に表示させることですね。

今回は、Rにおいてこれをやってみます。

#Rの起動
$ R

#Hello,world!の表示
> cat("Hello, world!!|n");
Hello, world!!
>

こんな感じです。

これをあらかじめソースコードを作成して行ってみます。

ソースコードの作成
$ vim hello.R

a


cat("Hello, world!!¥n");


:wq


#Rの起動
$ R

#ソースコードを読み込む
> source("./hello.R")
Hello, world

>

Rを用いてHello, world!!

プログラミングをはじめて初めてに行うのが、hello,worldを画面に表示させることですね。

今回は、Rにおいてこれをやってみます。

#Rの起動
$ R

#Hello,world!の表示
> cat("Hello, world!!|n");
Hello, world!!
>

こんな感じです。

これをあらかじめソースコードを作成して行ってみます。

ソースコードの作成
$ vim hello.R

a


cat("Hello, world!!¥n");


:wq


#Rの起動
$ R

#ソースコードを読み込む
> source("./hello.R")
Hello, world

>