2013年1月10日 星期四

將遠端伺服器的GUI傳回本機client

由於要跑matlab, 但是又只有server端才有安裝..
勢必要連線到遠端跑程式, 再把圖形結果擷取下來...
但是要怎樣秀出X11 windows的畫面呢, 下面用X11 Forwarding的方法來達成..

[Linux]
  1. 修改client端的 /etc/ssh/ssh_config 這個檔案, 找到下面文字並修改成 X11Forward yes.
  2. 利用ssh連線到server, 例如: ssh -X user@hostname.
  3. 鍵入 echo $DISPLAY, 看是否會出現類似 localhost:10.0 這樣的訊息.
  4. 測試一下吧, 鍵入 xclock& 看會不會出現小時鐘.


所以現在可以跑matlab程式囉!!





資料來源:
http://www.techotopia.com/index.php/Displaying_Ubuntu_Linux_Applications_Remotely_(X11_Forwarding)

2013年1月9日 星期三

[R] 交互對談指令

其實是一個小技巧, 因為某人是程式白癡, 我又不可能幫他跑所有可能組合...
所以只能把程式丟給他跑, 為了要讓介面人性化一點, 決定要用"交談式"的參數輸入~~

舉例來說, 下面的小函數就可以由使用者決定一個方陣的大小...
只要把這個code給copy/paste到R去, 就可以用demo()來跑程式了...


demo <- font="font" function="function">
    cat(" - Please input the size of matrix: ")
    n = readLines(n=1)
    n = as.numeric(n)
    mat = matrix(1,ncol=n,nrow=n)
    print(mat)
}

> demo()
 - Please input the size of matrix: 3
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    1    1    1
[3,]    1    1    1




2011年6月22日 星期三

[美食] 阿田麵店

北市赤峰街44巷20號
(承德路2段129巷進入亦可/捷運雙連站)

擁有60年歷史的老店!
雖然位在小巷內但是生意卻好到嚇嚇叫,即使過了用餐時間還是得時常等位子
台北市賣麵的小店家多到不勝枚舉,但是每每讓我想到就會懷念的就屬這家"阿田麵"
(若是開在我家旁邊大概每天都會去光顧吧)

阿田麵的湯頭完全不用一般店家會用的豬大骨下去熬湯
反而是採用大量的豬里肌肉下去熬製而成,加上些許油蔥酥後喝起來甘甜順口卻不油膩!!

假日沒營業!所以若不是在附近上班的人,除非排除萬難特地前往
不然還真是吃不到阿(之前連週三也休息呢)

若稱它為台北市最難吃到的台灣古早味夢幻麵店也不為過喔!!(自己封的)

2011年4月3日 星期日

[R] 畫圖時把兩個座標軸的scale調成一樣

網路上看到的小技巧, 原文在
簡單來說, 就是在plot()中加入一個參數asp=1...
檢附上面連結的example如下, 有空再來研究...
---
x <- sample(10:200,40)
y <- sample(20:100,40)
windows(width = max(x),height = max(y))
plot(x,y)
# try:
plot(x, y, asp = 1)
# or, better:
library(MASS)
eqscplot(x,y)
#or
library(lattice)
xyplot(y ~ x, aspect = "iso")

2011年3月27日 星期日

[OpenBUGS] 讀資料注意事項

在準備load data時, BUGS認得的科學記號是
"1.0E-04"
要注意的地方有兩個, 一個是E要大寫, 另一個是1.0需要給浮點數...
所以下面的寫法會有問題...
1E-04
1.0e-04
...


2010年10月20日 星期三

如何在 R 裏頭用各種顏色畫美美的圖~

會不會覺得在畫R的圖形時顏色都很單調呢...
不是黑色(default), 紅色(red), 綠色(green), 就是藍色(blue)...
現在給大家多一些選擇, 想不想畫出下面這種比較繽紛的圖形呢??


# R code:
barplot(VADeaths,beside=TRUE,col=c("lightblue","mistyrose","lightcyan","lavender","cornsilk"),
legend=rownames(VADeaths),ylim=c(0, 100))
title(main="Death Rates in Virginia",font.main=4)


眼尖的人可以看出來這些顏色的名稱是lightblue, mistyrose, lightcyan, lavender, cornsilk....
但是我哪知道這些名稱是對應到這些顏色啊....Orz...

現在救星來了, 請參考附加檔案的pdf檔案...
lightblue在第五頁的右下角數上來第二個, 編號400
mistyrose在第六頁編號479
...

所以現在是不是選擇性變多啦....
以後就可以畫美美的圖形了...
提供給大家參考...^^

2010年6月19日 星期六

Conditional logistic regression

雖然說WinBUGS中有三種寫法, 但是實際上測試結果只有第一種寫法最穩定..

參考資料 Volumn 2. Endo: conditional inference in case-control studies

直接用例子來說明(這裡的例子不是WinBUGS的, 而是R裡頭的School例子)

model
{
for (i in 1:N) {
y[i,1] <- 1 y[i,2] <- 0 }

for (i in 1:N) {

# model 1. 用一般的logistic regression去做, 缺點是只能處理1-1 matching
# 結果(update 10K, 取後面5K, 每隔10取一點)
# (b1,b2,b3)=(1.079 0.968 , -0.471 0.7271, -1.795 0.7117)

y[i,1] ~ dbin(p[i,1],1)
logit(p[i,1]) <- b1*(smoking[i,1]-smoking[i,2]) + b2*(rubber[i,1]-rubber[i,2]) + b3*(alcohol[i,1]-alcohol[i,2])

# model 2. 用multinomial distribution去做, 缺點是容易發散..
# y[i,1:2] ~ dmulti(p[i,1:2],1)
# for (j in 1:2) {
# p[i,j] <- e[i,j]/sum(e[i,]) # e[i,j] <- max(0.00001, min( exp(b1*smoking[i,j]+b2*rubber[i,j]+b3*alcohol[i,j]) , 0.99999)) # log(e[i,j]) <- b1*smoking[2*(i-1)+j]+b2*rubber[2*(i-1)+j]+b3*alcohol[2*(i-1)+j] # }


# model 3. 使用poisson regression去做, 但是我始終做不出來...(sigh)
# for (j in 1:2) {
# Y[i,j] ~ dpois(mu2[i,j])
# log(mu[i,j]) <- b0[i] + b1*smoking[2*(i-1)+j]+b2*rubber[2*(i-1)+j]+b3*alcohol[2*(i-1)+j] # mu[i,j] <- exp(b0[i] + b1*smoking[i,j]+b2*rubber[i,j]+b3*alcohol[i,j]) # mu2[i,j] <- max(mu[i,j], 0.0001) # }
# b0[i] ~ dnorm(0,1)

}

b1 ~ dnorm(0,1.0E-6)
b2 ~ dnorm(0,1.0E-6)
b3 ~ dnorm(0,1.0E-6)
}

list(b1=0,b2=0,b3=0)

list(N=26,
smoking=structure(.Data=c(1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0),.Dim=c(26,2)),
alcohol=structure(.Data=c(0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0),.Dim=c(26,2)),
rubber=structure(.Data=c(0,0,0,0,0,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0,0,0),.Dim=c(26,2)))


model
{
for (i in 1:N) {
y[i,1] <- 1
y[i,2] <- 0
}
for (i in 1:N) {
y[i,1] ~ dbin(p[i,1],1)
logit(p[i,1]) <- b1*(smoking[i,1]-smoking[i,2]) + b2*(rubber[i,1]-rubber[i,2]) + b3*(alcohol[i,1]-alcohol[i,2])
# Y[i,1:2] ~ dmulti(p[i,1:2],1)
# for (j in 1:2) {
# p[i,j] <- e[i,j]/sum(e[i,])
# e[i,j] <- max(0.00001, min( exp(b1*smoking[i,j]+b2*rubber[i,j]+b3*alcohol[i,j]) , 0.99999))
# log(e[i,j]) <- b1*smoking[2*(i-1)+j]+b2*rubber[2*(i-1)+j]+b3*alcohol[2*(i-1)+j]
# }
# for (j in 1:2) {
# Y[i,j] ~ dpois(mu2[i,j])
# log(mu[i,j]) <- b0[i] + b1*smoking[2*(i-1)+j]+b2*rubber[2*(i-1)+j]+b3*alcohol[2*(i-1)+j]
# mu[i,j] <- exp(b0[i] + b1*smoking[i,j]+b2*rubber[i,j]+b3*alcohol[i,j])
# mu2[i,j] <- max(mu[i,j], 0.0001)
# }
# b0[i] ~ dnorm(0,1)
}
b1 ~ dnorm(0,1.0E-6)
b2 ~ dnorm(0,1.0E-6)
b3 ~ dnorm(0,1.0E-6)
}
list(b1=0,b2=0,b3=0)
list(N=26,
smoking=structure(.Data=c(1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0),.Dim=c(26,2)),
alcohol=structure(.Data=c(0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0),.Dim=c(26,2)),
rubber=structure(.Data=c(0,0,0,0,0,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0,0,0),.Dim=c(26,2)))