2008年3月11日 星期二

實驗設計 ANOVA (暫放)

# 1-way between-subjects design: completely randomized design (CR):

aov(DV~IV, data=資料)

# 1-way within-subjects design: randomized block design (RB):

aov(DV~IV+Error(subject/IV), data=資料)

# 2-way between-subjects design: completely randomized factorial design (CRF):

aov(DV~IV1*IV2, data=資料)

# 若交互作用不重要:

aov(DV~IV1+IV2, data=資料)

# 2-way within-subjects design: randomized block factorial design (RBF):

aov(DV~IV1*IV2+Error(subject/(IV1*IV2)), data=資料)

# 2-way mixed design

aov(DV~IVw*IVb+Error(subject/(IVw))+IVb, data=資料)

# Nested design: hierarchical design

aov(DV~IV+IV:IVn, data=資料)

# IVn nestedIV裡面

# Latin square: 交互作用不考慮

aov(DV~IV1+IV2, data=資料)

資料夾設定

getwd()
# 用這個指令可以知道你現在在哪一個資料夾裡面,也代表你在哪裡進行存取檔案
setwd("C://")
# 改變資料夾的位置,引號內可以隨你變動,只要有就可以

2008年2月10日 星期日

物件 Objects

在R裡面的東西都稱為「物件 objects」
物件當中最基本的是向量(vector)
另外還有矩陣(matrices)或陣列(arrays)、
因素(factors)、表單(lists)、資料框架(data frames)、函數(functions)
基本上我們就是在運用這些物件透過計算、指令來處理資料

##############################

# 如果你想知道在你現在的「工作環境」中有哪些物件,可以使用
ls() # 他會列出所有出現在工作環境的物件,也可以用
objects()
# 而當你想要移除這些物件時,可以使用
rm(物件的名字)
# 如果你想要移除所有的物件,可以使用
rm(list=ls())

建立資料

通常我們要產生一組資料
除非有順序,不然會使用向量「c()」的方式
c() 表示「concatenate

而且會使用代號來表示,這時要使用「屬於」的符號
也就是「<-」,這個符號大致上也可以用「=」取代 來看幾個例子
x<-1:10
# 意思是說x表示1到10的向量
x # 輸入x就會跑出來我們設定的數字
[1] 1 2 3 4 5 6 7 8 9 10
y=5:7 # 用" = "大致上也是沒問題的
y
[1] 5 6 7

我通常會用「=」啦,因為畢竟只打一個符號會比較討喜,除非遇到問題在改成「<-」 z=c(4, 3, 7, 11, 2) # 使用了c()
z
[1] 4 3 7 11 2

注意喔!R裡面是有區分大小寫的喔
所以要小心輸入,所以如果是
Z
錯誤: 找不到目的物件 "Z"

2008年1月23日 星期三

簡單運算

接下來要介紹一些基本的功能使用

我們從最簡單運算開始
無庸置疑的,+-*/^這些指令相信絕大部分的人都能夠輕易上手
(註:紅色是我們輸入的字,藍色的部分是他輸出的結果,而[1]表示他是呈現的第一個數值)
1+2
[1] 3
5-3
[1] 2
3*4 # 3乘以4
[1] 12
10/5 # 10除以5
[1] 2
3^2 # 3的2次方
[1] 9
不過,你有沒有發現我在計算的後面用了#加了一些說明
沒有錯,在R裡面,如果你想加註說明
就可以直接用#來區隔
也就是在同一行裡面,#以後的訊息都不會被讀取到
所以如果你打
3*8 # 100+99
[1] 24
只會出現24這個答案(因為只會計算3乘以8,後面的100+99不會計算)

也可以配合一些「()」的使用,當然如果你用很多的時候會眼花的
另外,基本上你所熟知的一些數學代號基本上都是可以憑直覺使用的
不過還是亦稍微小心
例如
log(10) # 這個是自然對數喔,並不是我們所知道的以10為底,他是以e為底的log
[1] 2.302585
log(100,10) # 所以想改成以10為底,就在要後面加上
[1] 2
log(8,2) # 以2為底
[1] 3
簡單的說,要避免使用錯誤,最好的方式是先自己試一試
exp(3) # 數學中有時還滿容易使用到的指數,例子是說e的3次方
[1] 20.08554
如果你輸入了一些無意義的會怎樣呢?
4/0
[1] Inf
# 無限的意思呢!
0/0
[1] NaN
# Not a Number

2008年1月12日 星期六

R help

終於進入R的世界了,
不過既然這是個要輸入指令的語法介面,就會想要知道有什麼功能可以用
要怎麼知道這些指令呢?
猜測? 去網路找?(於是你進入了這個網站)
基本上你可以輸入「help(打你想知道可能的指令)」來尋找

舉個例:
help(plot)
(搜尋「plot」這個指令)
他會跑出一個視窗介紹關於plot(繪圖)這個指令的內容
包括他有哪些參數要輸入,也有例子告訴你
基本上,這個指令等同於使用:
?(plot)
如果萬一沒有找到和這個有關的指令,他也會建議你用
help.search("plot")
這個指令其實就和中文版上方命令列「輔助」裡「搜尋輔助」是一樣的

不過似乎有些具有特別意義的指令可能要加個引號
例如
help("if")
?"!"
(搜尋「!」這個字元的意思)

萬一萬一怎麼找都找不到你所需要的指令呢?
我們就只好到網路上尋找有沒有什麼幫助了
就像之前提過的,用R當關鍵字真的很不利
所以這裡我建議你使用「r help」當關鍵字搜尋
(當然後面加上你想要找的內容)
因為R有個討論指令的地方
有很多人可能有和你相同的問題
所以...去發掘寶藏吧!

考考你一題不容易的
一個很基本的統計指標是 眾數(mode)
請問他的指令是...?

答案之後會告訴你!

Trial and Error!
That will be YOURS!

2008年1月11日 星期五

R也是有一些不便之處

當然R不是盡善盡美,他也是有缺點的
1.他是需要執行指令的,因此沒有像SPSS那麼方便,拉來拉去就可以的
(不過像我沒有程式基礎,也是可以摸一摸就大概可以知道很多功能了)

2.某些指令並沒有辦法直接獲得,舉個例子來說好了
想要獲得一群data的眾數...R裡面似乎沒有辦法找到適合的指令
(至少在我現在用的版本2.6.0) 不過我還是有找到解決的方法喔

3.如果遇到問題,或想要知道有哪些指令可以用的時候
偏偏在軟體裡面的help(之後會介紹要怎麼找)也找沒頭緒
網路上很難用關鍵字找到,畢竟會用到"R"的關鍵字的可能太多了
(之後也會告訴你怎麼用關鍵字搜尋)

4.因為是免費軟體,所以R他不提供任何擔保

5.聽說跑起模擬來會很慢

怎麼獲得R這個軟體呢?

R的官方網站是www.r-project.org(或是搜尋r project也可以)
進入網站後,下面有個Getting Started,
裡面有連結(CRAN mirror)是到下載的頁面,
點選進入後,找到自己的國家就可以下載到了喔!
有一個就是台灣大學的呢!
進去以後,在選擇你的作業系統,之後下載base就完成了!

下載完以後,有沒有發現,還是中文版的呢!用起來真讓人開心!
但告訴你喔,不只介面是中文...指令還可以用中文寫呢!

統計軟體那麼多種,那為什麼要用R呢?

首先,最厲害的一點,R是免費的(稍候會介紹如何獲得它),
他不像SAS或SPSS要花錢去購買,
另外它的功能也是滿強大的(在統計方面),譬如說可以跑一些模擬等等。

此外呢,他的好處是,可以在不同的系統下執行喔!
除了Windows,也可以在Mac(現今應該不少人在使用它)
或是Linux跑R呢!

網站建立


這個網站的建立,是想整理統計軟體R裡面有的沒有的
其實會想建構這個網站,一來是因為今天meeting的時候,
有位學長說他有在用blogger整理他看過的papers (當然大部分是abstract...^^")
然後之後我又剛好在研究R
這兩起事件碰在一起,就生出了這個網站...

當然也感謝你願意進來參觀