Professional Documents
Culture Documents
ﻓﮭﺮﺳﺖ
I
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
52 رﮔﺮﺳﯿﻮن
52 .1ﻣﺪل ھﺎی ﺧﻄﯽ
55 .2رﺳﻢ ﻧﻤﻮدار ﺧﻂ رﮔﺮﺳﯿﻮن
56 .3ﺑﺮرﺳﯽ ﻓﺮض ھﺎی ﻣﺪل
57 .4آزﻣﻮن ﻓﺮض
59 .5ﻓﺎﺻﻠﮫ اﻃﻤﯿﻨﺎن
59 .6ﻣﻘﺎﯾﺴﮫ ﻣﺪل ھﺎ
66 ﻣﻨﺎﺑﻊ
II
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻧﺮم اﻓﺰار Rداراي ﻣﺤﯿﻄﯽ ﺷﺒﯿﻪ ﻧﺮم اﻓﺰار S-Plusﺑﻮده و ﺑﺮاي اﻧﺠﺎم ﻫﺮ ﻓﻌﺎﻟﯿﺖ در اﯾﻦ ﻧﺮم اﻓﺰار ﺑﺎﯾﺪ از دﺳﺘﻮرﻫﺎ و
ﮐﺪﻫﺎي ﻣﻨﺎﺳﺐ ،ﮐﻪ اﻏﻠﺐ ﺷﺒﯿﻪ دﺳﺘﻮرﻫﺎي ﻣﻮرد اﺳﺘﻔﺎده در ﻧﺮم اﻓﺰار S-Plusﻫﺴﺘﻨﺪ اﺳﺘﻔﺎده ﮐـﺮد .ﺑـﺎ اﺟـﺮاي ﻧـﺮم
اﻓﺰار Rو ﺑﺎز ﺷﺪن ﻣﺤﯿﻂ ﮐﺎري ،اﺑﺘﺪا ﺗﻮﺿﯿﺤﺎﺗﯽ در ﻣﻮرد ﻧﺮم اﻓﺰار ﻇﺎﻫﺮ ﺷﺪه و ﭘﺲ از آن ﻋﻼﻣﺖ " > " ﺑﻪ ﻧﻤﺎﯾﺶ
در ﺧﻮاﻫﺪ آﻣﺪ ﮐﻪ ﻧﺸﺎن دﻫﻨﺪه ﻧﻘﻄﻪ ﺷﺮوع ﻧﻮﺷﺘﻦ دﺳﺘﻮرات اﺳﺖ .در ﻧﺮم اﻓﺰار Rﻫﻤﻮاره دﺳﺘﻮرات ﺑﻌﺪ از ﻋﻼﻣـﺖ
" > " ﻧﻮﺷﺘﻪ ﻣﯽ ﺷﻮﻧﺪ .ﺑﺎ ﻓﺸﺮدن ﮐﻠﯿﺪ Enterروي ﺻﻔﺤﻪ ﮐﻠﯿﺪ در ﺻﻮرﺗﯽ ﮐﻪ دﺳﺘﻮر ﯾﺎ ﮐـﺪ ﻧﻮﺷـﺘﻪ ﺷـﺪه از ﻧـﻮع
دﺳﺘﻮرات اﺟﺮاﯾﯽ ﺑﺎﺷﺪ اﺟﺮا ﺧﻮاﻫﺪ ﺷﺪ ،و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت دﺳﺘﻮرات ﺑﻪ ﺧﻂ ﺑﻌﺪي ﻣﻨﺘﻘﻞ ﺧﻮاﻫﻨـﺪ ﺷـﺪ .ﺑـﺮاي
ﺧﺮوج از ﻧﺮم اﻓﺰار از دﺳﺘﻮر )( qاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .در ﺷﮑﻞ زﯾﺮ ﻣﺤﯿﻂ ﻧﺮم اﻓﺰار Rﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
1
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﻧﻮﺷﺘﻦ ﮐﺪﻫﺎ و دﺳﺘﻮرات در Rﺗﻮﺟﻪ ﺑﻪ ﭼﻨﺪ ﻧﮑﺘﻪ ﺿﺮوري ﺑﻪ ﻧﻈﺮ ﻣﯽ رﺳﺪ .ﻧﺮم اﻓﺰار Rﻧﺴﺒﺖ ﺑـﻪ ﺑﺰرﮔـﯽ و
ﮐﻮﭼﮑﯽ ﺣﺮوف ﺣﺴﺎس ﺑﻮده و ﺣﺮوف ﺑﺰرگ و ﮐﻮﭼﮏ را ﺑﻪ ﺻﻮرت ﻣﺘﻤﺎﯾﺰ در ﻧﻈﺮ ﻣﯽ ﮔﯿﺮد .ﻣﺜﻼ Aو aدر اﯾـﻦ
ﻧﺮم اﻓﺰار ﺑﻪ دو ﺷﺊ ﻣﺨﺘﻠﻒ اﺷﺎره ﻣﯽ ﮐﻨﻨﺪ .ﺑﺮاي ﺟﺪا ﮐﺮدن دﺳﺘﻮرات ﻣﯽ ﺗﻮان از ﻋﻼﻣﺖ " ; " اﺳﺘﻔﺎده ﮐﺮده و ﯾـﺎ
دﺳﺘﻮر را ﺑﻪ ﺧﻂ ﺑﻌﺪ ﻣﻨﺘﻘﻞ ﮐﺮد .ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﻗﺮاردادن ﮔﺮوﻫﯽ از دﺳﺘﻮرﻫﺎ در ﮐﻨﺎر ﻫﻢ از ﻋﻼﻣـﺖ " } " و " { "
اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺮاي وارد ﮐﺮدن ﺗﻮﺿﯿﺤﺎت در ﻣﯿﺎن دﺳﺘﻮرﻫﺎ ﻧﯿﺰ ﻣﯽ ﺗﻮان از ﻋﻼﻣﺖ #اﺳﺘﻔﺎده ﮐﺮد .در ﺻﻮرﺗﯽ ﮐﻪ
ﺑﺨﻮاﻫﯿﻢ ﮐﺪﻫﺎي ﻗﺒﻞ را ﺑﺎزﺧﻮاﻧﯽ ﯾﺎ وﯾﺮاﯾﺶ ﮐﻨﯿﻢ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﮐﻠﯿﺪﻫﺎي ﻣﮑﺎن ﻧﻤﺎي ﺑﺎﻻ و ﭘﺎﯾﯿﻦ ﺻﻔﺤﻪ ﮐﻠﯿﺪ ﮐﻤﮏ
ﺑﮕﯿﺮﯾﻢ .ﻫﻤﭽﻨﯿﻦ در ﻣﯿﺎن ﺧﻄﻮط ﺑﺮﻧﺎﻣﻪ ﻧﯿﺰ ﻣﯽ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪﻫﺎي ﻣﮑﺎن ﻧﻤﺎي ﭼﭗ و راﺳﺖ ﺟﺎﺑﺠﺎ ﺷـﺪه و
ﺑﻪ وﯾﺮاﯾﺶ ﮐﺪﻫﺎ ﭘﺮداﺧﺖ .ﺑﺮاي ﭘﺎك ﮐﺮدن ﺻﻔﺤﻪ ﻣﯽ ﺗﻮان از ﮐﻠﯿﺪﻫﺎي ﺗﺮﮐﯿﺒﯽ Ctrl+Lاﺳﺘﻔﺎده ﮐﺮد .ﺑﺮاي ﮐـﺴﺐ
اﻃﻼﻋﺎت در ﻣﻮرد ﺗﻮاﺑﻊ و اﺳﺘﻔﺎده از ﻓﺎﯾﻞ helpﻣﯽ ﺗﻮان ﻧﺎم ﺗﺎﺑﻊ را ﺑﻌﺪ از ﯾﮏ ﻋﻼﻣﺖ ﺳﻮال ﻧﻮﺷﺘﻪ و ﺑﻪ ﻋﻨﻮان ﯾﮏ
دﺳــﺘﻮر ﻣــﻮرد اﺳــﺘﻔﺎده ﻗــﺮار داد .ﻫﻤﭽﻨــﯿﻦ ﺑــﺮاي ﺟــﺴﺘﺠﻮي ﯾــﮏ ﮐﻠﻤــﻪ در ﻓﺎﯾــﻞ helpﻣــﯽ ﺗــﻮان از ﺗــﺎﺑﻊ
)( help.searchاﺳﺘﻔﺎده ﮐﺮد.
.2ﮐﺎر ﺑﺎ اﺷﯿﺎء
اﻧﻮاع ﻣﺨﺘﻠﻒ اﺷﯿﺎء در Rﻋﺒﺎرﺗﻨﺪ از ﺑﺮدارﻫﺎ ،آراﯾﻪ ﻫﺎ و ﻣﺎﺗﺮﯾﺲ ﻫﺎ ،ﻓﺎﮐﺘﻮرﻫﺎ ،ﻟﯿﺴﺖ ﻫﺎ ،دﯾﺘﺎ ﻓﺮﯾﻢ ﻫﺎ ،و ﺗﻮاﺑﻊ .در R
ﯾﮏ ﻣﺘﻐﯿﺮ ﺗﮏ ﻋﻀﻮي ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺑﺮدار ﺗﮏ ﻋﻀﻮي در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮد .ﺑﺮاي ﻣﺸﺎﻫﺪه ﺳـﺎﺧﺘﺎر ﯾـﮏ ﺷـﺊ از
ﺗﺎﺑﻊ )( strﺑﻪ ﻫﻤﺮاه ﻧﺎم آن ﺷﺊ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي اﺧﺘﺼﺎص ﯾﮏ ﻣﻘﺪار ﺑﻪ ﯾﮏ ﺷﺊ از ﻋﻤﻠﮕﺮ ﺗﺨـﺼﯿﺺ ﺑـﻪ
ﺷﮑﻞ " > " -ﯾﺎ " " <-و ﯾﺎ ﻋﻼﻣﺖ " = " اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت ﯾﮏ ﺷﺊ ﻧﯿﺰ ﮐﺎﻓﯿـﺴﺖ ﻧـﺎم آن
ﺷﺊ را ﺑﻪ ﻋﻨﻮان ﯾﮏ دﺳﺘﻮر وارد ﮐﻨﯿﻢ.
ﻣﺜﺎل :
> Value <- 4
> Value
[1] 4
ﺑﺮاي ﻣﺸﺎﻫﺪه ﺗﻤﺎم اﺷﯿﺎء ﻣﻮﺟﻮد در ﻣﺤﯿﻂ از ﺗﺎﺑﻊ )( objectsﯾﺎ ﻣﻌﺎدل آن )( lsاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
)(> objects
"[1] "a ""ab ""abc ""Value
ﺑﺮاي ﺣﺬف ﯾﮏ ﺷﺊ از ﺗﺎﺑﻊ )( removeﯾﺎ ﻣﻌﺎدل آن )( rmﺑﺎ ذﮐﺮ ﻧﺎم اﺷـﯿﺎﺋﯽ ﮐـﻪ ﺑﺎﯾـﺪ ﺣـﺬف ﺷـﻮﻧﺪ اﺳـﺘﻔﺎده
ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
)> remove(a,ab,Value
2
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻧﺮم اﻓﺰار Rﻓﺎﺻﻠﻪ ﻫﺎي اﺿﺎﻓﯽ ﺑﯿﻦ ﮐﺪﻫﺎ را ﻧﺎدﯾﺪه ﻣﯽ ﮔﯿﺮد ،ﺑﻨﺎﺑﺮاﯾﻦ ﻗﺮار دادن ﻓﺎﺻﻠﻪ زﯾﺎد ﺑـﯿﻦ ﮐـﺪﻫﺎ ﻣـﺸﮑﻠﯽ در
اﺟﺮاي آﻧﻬﺎ اﯾﺠﺎد ﻧﻤﯽ ﮐﻨﺪ.
ﺑﻪ اﺷﯿﺎء ﻣﯽ ﺗﻮان داده ﻫﺎﯾﯽ را از ﻧﻮع ﻋﺪدي ،ﮐﺎراﮐﺘﺮي ،ﻣﻨﻄﻘﯽ ،ﯾﺎ ﻣﺨﺘﻠﻂ ﺗﺨﺼﯿﺺ داد.
ﻣﺜﺎل :
ﺑﺮاي ﻣﺸﺎﻫﺪه ﻧﻮع ﯾﮏ ﺷﺊ از ﺗﺎﺑﻊ )( modeو ﺑﺮاي ﻣﺸﺎﻫﺪه ﻃﻮل ﯾﮏ ﺷﺊ از ﺗﺎﺑﻊ )( lengthاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
)> mode(value.logical
"[1] "logical
)> length(value.logical
[1] 1
)> mode(sin
"[1] "function
)> length(sin
[1] 1
.2.1ﺑﺮدارﻫﺎ
ﺑﺮاي ﺳﺎﺧﺖ ﯾﮏ ﺑﺮدار در Rاز ﺗﺎﺑﻊ )( cاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﺗﺨﺼﯿﺺ ﯾﮏ ﺑﺮدار ﺑﻪ ﯾﮏ ﺷﺊ ﻣﯽ ﺗﻮان
از ﻋﻤﻠﮕﺮ ﺗﺨﺼﯿﺺ ﯾﺎ ﺗﺎﺑﻊ )( assignاﺳﺘﻔﺎده ﮐﺮد.
ﻣﺜﺎل :ﻫﺮ ﺳﻪ ﻋﺒﺎرت زﯾﺮ ﻣﻌﺎدل ﯾﮑﺪﯾﮕﺮﻧﺪ.
ﺑﺮاي ﺗﻮﻟﯿﺪ ﯾﮏ ﺑﺮدار از اﻋﺪاد ﻣﺘﻮاﻟﯽ ﺑﯿﻦ دوﻋﺪد ﻣﯽ ﺗﻮان از ﻋﻤﻠﮕﺮ " " :اﺳﺘﻔﺎده ﮐﺮد .ﺑﺮاي ﺗﻮﻟﯿﺪ اﻋﺪاد ﺑﻪ اﯾﻦ ﺷﯿﻮه
ﻣﯽ ﺗﻮان از ﻋﻤﻠﮕﺮﻫﺎي رﯾﺎﺿﯽ ﻧﯿﺰ اﺳﺘﻔﺎده ﮐﺮد.
3
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
راﯾﺞ ﺗﺮﯾﻦ ﺗﺎﺑﻌﯽ ﮐﻪ ﺑﺮاي ﺗﻮﻟﯿﺪ اﻋﺪاد ﻣﺘﻮاﻟﯽ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد ﺗﺎﺑﻊ )( seqاﺳﺖ .در اﯾﻦ ﺗﺎﺑﻊ ﻣﯽ ﺗـﻮان
ﺑﺎ ﻣﺸﺨﺺ ﮐﺮدن ﻧﻘﺎط ﺷﺮوع و ﭘﺎﯾﺎن ،ﻣﺸﺨﺺ ﮐﺮدن ﮔﺎم اﻓﺰاﯾﺸﯽ ﯾﺎ ﮐﺎﻫﺸﯽ ،و ﯾﺎ ﻣﺸﺨﺺ ﮐﺮدن ﻃﻮل ﺑﺮدار ﻣـﻮرد
ﻧﻈﺮ ﺑﺮداري از اﻋﺪاد ﻣﺘﻮاﻟﯽ ﺗﻮﻟﯿﺪ ﮐﺮد.
ﻣﺜﺎل :
)> seq(1,10
[1] 1 2 3 4 5 6 7 8 9 10
)> seq(1,10,by=2
[1] 1 3 5 7 9
)> seq(1,by=2,length=10
[1] 1 3 5 7 9 11 13 15 17 19
ﺑﺮاي ﺗﮑﺮار اﻋﻀﺎي ﯾﮏ ﺑﺮدار از ﺗﺎﺑﻊ )( repاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .در اﯾﻦ ﺗﺎﺑﻊ اﺑﺘﺪا ﺑﺎﯾﺪ اﻋﺪادي را ﮐـﻪ ﻣـﯽ ﺧـﻮاﻫﯿﻢ
ﺗﮑﺮار ﺷﻮﻧﺪ وارد ﮐﻨﯿﻢ ،ﺳﭙﺲ ﺑﻮﺳﯿﻠﻪ ﮔﺰﯾﻨﻪ ﻫﺎي = eachو = timesﺑﻪ ﺗﺮﺗﯿﺐ ﺗﻌﺪاد دﻓﻌﺎﺗﯽ را ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻫﺮ
ﻋﺪد ﺗﮑﺮار ﺷﻮد ﯾﺎ ﮐﻞ اﻋﺪاد ﺗﮑﺮار ﺷﻮﻧﺪ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
4
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﺗﻮﻟﯿﺪ ﯾﮏ ﻧﻤﻮﻧﻪ ﺗﺼﺎدﻓﯽ از اﻋﺪاد دﻟﺨﻮاه از ﺗﺎﺑﻊ )( sampleاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ
زﯾﺮ اﺳﺖ.
)sample(x,size,replace,prob
در اﯾﻦ ﺗﺎﺑﻊ xﺑﺮداري اﺳﺖ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻧﻤﻮﻧﻪ ﻣﻮرد ﻧﻈﺮ از آن ﮔﺮﻓﺘﻪ ﺷﻮد .در ﻗﺴﻤﺖ sizeﺑﺎﯾﺪ ﺣﺠﻢ ﻧﻤﻮﻧﻪ را
ﻣﺸﺨﺺ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ replaceﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ آﯾﺎ ﻧﻤﻮﻧﻪ ﮔﯿﺮي ﺑﺎ ﺟﺎﯾﮕﺬاري ﺑﺎﺷﺪ ﯾﺎ ﺑﺪون ﺟﺎﯾﮕﺬاري.
در ﺻﻮرﺗﯽ ﮐﻪ replaceرا ﻣﺴﺎوي TRUEﻗﺮار دﻫﯿﻢ ﻧﻤﻮﻧﻪ ﮔﯿﺮي ﺑﺎ ﺟﺎﯾﮕﺬاري اﻧﺠﺎم ﻣﯽ ﺷﻮد و در ﺻﻮرﺗﯽ ﮐـﻪ
آﻧﺮا ﻣﺴﺎوي FALSEﻗﺮار دﻫﯿﻢ ﻧﻤﻮﻧﻪ ﮔﯿﺮي ﺑﺪون ﺟﺎﯾﮕﺬاري اﻧﺠﺎم ﺧﻮاﻫﺪ ﺷﺪ .در ﻗـﺴﻤﺖ probﻧﯿـﺰ ﻣـﯽ ﺗـﻮان
ﺑﺮداري ﺷﺎﻣﻞ وزن ﻫﺎ وارد ﮐﺮد ﺗﺎ ﻧﻤﻮﻧﻪ ﮔﯿﺮي ﺑﻪ ﺻﻮرت وزﻧﯽ اﻧﺠﺎم ﺷﻮد.
ﻣﺜﺎل :
اﯾﻨﺪﮐﺲ ﮐﺮدن ﯾﮏ ﺷﺊ ﻋﺒﺎرت اﺳﺖ از ﻓﺮاﺧﻮاﻧﯽ اﻋﻀﺎي آن ﺷﺊ .ﺑﺮاي اﯾﻨﺪﮐﺲ ﮐﺮدن ﯾﮏ ﺑﺮدار از ﻋﻼﻣﺖ ﺑﺮاﮐـﺖ
اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
ﺑﺮاي اﻧﺠﺎم ﻋﻤﻠﯿﺎت رﯾﺎﺿﯽ روي ﺑﺮدارﻫﺎ ﻣﯽ ﺗـﻮان از ﻋﻤﻠﮕﺮﻫـﺎي رﯾﺎﺿـﯽ ، / ، * ، - ، +و ^ ) ﺗـﻮان (،
)(،cos()،sin()،exp()،log ) %%ﺑﺎﻗﯿﻤﺎﻧــﺪه ( ،و ) %/%ﺧــﺎرج ﻗــﺴﻤﺖ ( ،و ﺗﻮاﺑــﻊ رﯾﺎﺿــﯽ ﻣﺎﻧﻨــﺪ
)( ) sqrt()،tanرﯾﺸﻪ دوم ( ،و ﻏﯿﺮه اﺳﺘﻔﺎده ﮐﺮد .ﻫﺮﯾﮏ از ﻋﻤﻠﮕﺮﻫﺎ و ﺗﻮاﺑﻊ ﻓﻮق ﺑﻪ ﺻﻮرت ﻋﻀﻮ ﺑـﻪ ﻋـﻀﻮ
روي ﻋﻨﺎﺻﺮ ﺑﺮدار ﻋﻤﻞ ﻣﯽ ﮐﻨﻨﺪ .ﻣﺜﻼ در دﺳﺘﻮر y+1ﻫﺮ ﻋﻀﻮ ﺑﺮدار yﺑﺎ ﻋﺪد ﯾﮏ ﺟﻤﻊ ﻣﯽ ﺷﻮد .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾـﻦ
ﺧﺎﺻﯿﺖ ﺑﺮاي اﻋﻤﺎل ﻋﻤﻠﮕﺮﻫﺎ روي ﺑﺮدارﻫﺎ ﻧﯿﺎزي ﻧﯿﺴﺖ ﮐﻪ ﺑﺮدارﻫﺎ داراي ﻃﻮل ﯾﮑﺴﺎن ﺑﺎﺷﻨﺪ .ﻫﻤـﻮاره ﻃـﻮل ﻫﻤـﻪ
ﺑﺮدارﻫﺎي ﻣﻮﺟﻮد در ﯾﮏ ﻋﺒﺎرت رﯾﺎﺿﯽ ﺑﻪ اﻧﺪازه ﻃﻮل ﺑﺰرﮔﺘﺮﯾﻦ ﺑﺮدار ﻣﻮﺟﻮد در ﻋﺒﺎرت در ﺧﻮاﻫﻨﺪ آﻣﺪ .در ﻣـﻮرد
ﺑﺮدارﻫﺎ ﻣﯽ ﺗﻮان از ﺑﺮﺧﯽ ﺗﻮاﺑﻊ آﻣﺎري ﻧﯿﺰ اﺳﺘﻔﺎده ﮐﺮد .ﺗﻮاﺑﻊ )( minو )( maxﺑـﻪ ﺗﺮﺗﯿـﺐ ﮐـﻮﭼﮑﺘﺮﯾﻦ ﻋـﻀﻮ و
5
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺰرﮔﺘﺮﯾﻦ ﻋﻀﻮ ﯾﮏ ﺑﺮدار را اراﺋﻪ ﻣﯽ ﮐﻨﻨﺪ .ﺗﺎﺑﻊ )( rangeﺑﺮداري ﺑﺎ دو ﻋﻀﻮ اراﺋﻪ ﻣﯽ ﮐﻨﺪ ﮐـﻪ آن دو ﻋـﻀﻮ ﺑـﻪ
ﺗﺮﺗﯿﺐ ﮐﻮﭼﮑﺘﺮﯾﻦ و ﺑﺰرﮔﺘﺮﯾﻦ ﻋﻀﻮ ﺑﺮدارﻣﻮرد ﻧﻈﺮ ﻫﺴﺘﻨﺪ .ﺗﺎﺑﻊ )( lengthﻃﻮل ﯾﮏ ﺑﺮدار ،ﺗﺎﺑﻊ )( sumﺣﺎﺻﻞ
ﺟﻤﻊ اﻋﻀﺎي ﯾﮏ ﺑﺮدار ،و ﺗﺎﺑﻊ )( prodﺣﺎﺻﻞ ﺿﺮب اﻋـﻀﺎي ﯾـﮏ ﺑـﺮدار را اراﺋـﻪ ﻣـﯽ ﮐﻨـﺪ .ﻫﻤﭽﻨـﯿﻦ ﺗﻮاﺑـﻊ
)( meanو )( varو )( sdﺑﻪ ﺗﺮﺗﯿﺐ ﻣﯿﺎﻧﮕﯿﻦ و وارﯾـﺎﻧﺲ و اﻧﺤـﺮاف اﺳـﺘﺎﻧﺪارد اﻋـﻀﺎي ﯾـﮏ ﺑـﺮدار را اراﺋـﻪ
ﻣﯽ ﮐﻨﻨﺪ .ﺗﻮاﺑﻊ )( corو )( covﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻫﻤﺒﺴﺘﮕﯽ و ﮐﻮارﯾﺎﻧﺲ ﻣﯿﺎن اﻋﻀﺎي ﯾـﮏ ﺑـﺮدار ﻣـﻮرد
اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ .از ﺗﻮاﺑﻊ )( summaryو )( quantileﻧﯿﺰ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﭼﻨﺪك ﻫﺎ اﺳـﺘﻔﺎده ﻣـﯽ ﺷـﻮد.
ﺗﺎﺑﻊ )( sortاﻋﻀﺎي ﯾﮏ ﺑﺮدار را ﺑﻪ ﺻﻮرت ﺻﻌﻮدي ﻣﺮﺗﺐ ﻣﯽ ﮐﻨﺪ .از ﺗﺎﺑﻊ)( roundﻧﯿـﺰ ﺑـﺮاي ﮔـﺮد ﮐـﺮدن
اﻋﺪاد ﺗﺎ رﻗﻢ اﻋﺸﺎر دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :
ﺑﺮاي ﻣﻌﺮﻓﯽ داده ﻫﺎي ﮔﻤﺸﺪه در ﯾﮏ ﺑﺮدار از ﻋﺒﺎرت NAاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي ﺑﺮرﺳﯽ داده ﻫﺎي ﮔﻤﺸﺪه در ﯾـﮏ
ﺑﺮدار از ﺗﺎﺑﻊ )( is.naاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .اﯾﻦ ﺗﺎﺑﻊ ﺑﺮداري ﻣﻨﻄﻘﯽ ﺑﻪ ﻃﻮل ﺑﺮدار ﻣﻮرد ﻧﻈﺮ اراﺋﻪ ﻣﯽ دﻫﺪ ﮐﻪ ﻣﻘﺎدﯾﺮ
ﮔﻤﺸﺪه ﻣﺘﻨﺎﻇﺮ ﺑﺎ اﻋﻀﺎي ﺑﺮدار در آن ﺑﺎ TRUEﻧﺸﺎن داده ﺷﺪه اﻧﺪ.
ﻣﺜﺎل :
6
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.2.1.7ﺑﺮدار ﮐﺎراﮐﺘﺮﻫﺎ
ﺑﺮدار ﮐﺎراﮐﺘﺮﻫﺎ ﻧﯿﺰ ﻫﻤﺎﻧﻨﺪ ﺑﺮدار اﻋﺪاد ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( cﺳﺎﺧﺘﻪ ﻣﯽ ﺷﻮد .ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﺑـﺮدار از ﮐﺎراﮐﺘﺮﻫـﺎ
ﺑﺎﯾﺪ آﻧﻬﺎ را درون ﻋﻼﻣﺖ ﻫﺎي " ﯾﺎ ' ﻗﺮار داد .در ﯾﮏ ﺑﺮدار از ﮐﺎراﮐﺘﺮﻫﺎ ﻣﯽ ﺗﻮان از \nﺑﺮاي رﻓﺘﻦ ﺑﻪ ﺧﻂ ﺟﺪﯾﺪ،
از \tﺑﺮا ي ﺟﻬﺶ ،و از \bﺑﺮاي ﺑﺎزﮔﺸﺖ اﺳﺘﻔﺎده ﮐﺮد .ﻫﻤﭽﻨﯿﻦ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( pasteﻣﯽ ﺗﻮان دﻧﺒﺎﻟﻪ اي
از اﻋﺪاد را ﺑﻪ ﮐﺎراﮐﺘﺮﻫﺎ ﺗﺨﺼﯿﺺ داد .در ﺗﺎﺑﻊ )( pasteﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ = sepﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ ﮐﺎراﮐﺘﺮﻫﺎ
و اﻋﺪاد ﺑﻪ وﺳﯿﻠﻪ ﭼﻪ ﮐﺎراﮐﺘﺮي از ﻫﻢ ﺟﺪا ﺷﻮﻧﺪ.
ﻣﺜﺎل:
)""=> paste(c("X"),1:10,sep
"[1] "X1" "X2" "X3" "X4" "X5" "X6" "X7" "X8" "X9 ""X10
)""=> paste(c("X","Y"),rep(1:5,each=2),sep
"[1] "X1" "Y1" "X2" "Y2" "X3" "Y3" "X4" "Y4" "X5" "Y5
letters ﺑﺮاي ﺗﻮﻟﯿﺪ ﺑﺮدارﻫﺎﯾﯽ از ﺣﺮوف ﻣﯽ ﺗﻮان از ﺑﺮدارﻫﺎي lettersو LETTERSاﺳﺘﻔﺎده ﮐﺮد .دو ﺑﺮدار
و LETTERSﺑﻪ ﺗﺮﺗﯿﺐ ﺷﺎﻣﻞ 26ﺣﺮف ﮐﻮﭼﮏ و ﺑﺰرگ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﺎ اﯾﻨﺪﮐﺲ ﮐﺮدن اﯾﻦ ﺑﺮدارﻫﺎ ﻣﯽ ﺗﻮان ﺑﻪ اﯾـﻦ
ﺣﺮوف دﺳﺖ ﯾﺎﻓﺖ.
ﻣﺜﺎل:
]> letters[1:10
"[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j
]> LETTERS[10:20
"[1] "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T
.2.2ﻓﺎﮐﺘﻮرﻫﺎ
ﻓﺎﮐﺘﻮرﻫﺎ از ﻟﺤﺎظ ﺳﺎﺧﺘﺎري ﺑﺴﯿﺎر ﺷﺒﯿﻪ ﺑﺮدارﻫﺎ ﻫﺴﺘﻨﺪ .از ﻓﺎﮐﺘﻮرﻫﺎ ﺑﺮاي ﮔﺮوه ﺑﻨﺪي و اﯾﺠﺎد ﺗﻤـﺎﯾﺰ ﺑـﯿﻦ داده ﻫـﺎي
ﺑﺮدارﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﻓﺎﮐﺘﻮرﻫﺎ را ﻣﯽ ﺗﻮان ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﯿﻢ ﺗﻮﻟﯿﺪ ﮐﺮده و ﯾﺎ ﯾﮏ ﺑﺮدار را ﺑﻪ ﯾﮏ ﻓﺎﮐﺘﻮر ﺗﺒﺪﯾﻞ ﮐﺮد.
ﺑﺮاي ﺗﺒﺪﯾﻞ ﯾﮏ ﺑﺮدار ﺑﻪ ﯾﮏ ﻓﺎﮐﺘﻮر از ﺗﺎﺑﻊ )( factorاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :در ﻣﻮرد ﮔﺮوﻫﯽ از اﻓﺮاد ﺟﻨﺴﯿﺖ و ﺳﻦ را در دو ﺑﺮدار sexو ageﺛﺒﺖ ﮐﺮده اﯾﻢ .ﻣﯽ ﺧﻮاﻫﯿﻢ از ﺑﺮدار sex
ﺑﻪ ﻋﻨﻮان ﻓﺎﮐﺘﻮري ﺑﺮاي دﺳﺘﻪ ﺑﻨﺪي داده ﻫﺎي ﺑﺮدار ageاﺳﺘﻔﺎده ﮐﻨﯿﻢ.
7
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺎ اﺳﺘﻔﺎده ازﺗﺎﺑﻊ )( tapplyﻣﯽ ﺗﻮان ﯾﮏ ﺗﺎﺑﻊ را ﺑﺮ ﺣﺴﺐ ﯾﮏ ﻓـﺎﮐﺘﻮر روي ﯾـﮏ ﺑـﺮدار اﻋﻤـﺎل ﮐـﺮد .در ﺗـﺎﺑﻊ
)( tapplyﺑﺎﯾﺪ ﺑﺮدار داده ﻫﺎ ،ﻓﺎﮐﺘﻮر ،و ﺗﺎﺑﻊ ﻣﻮرد ﻧﻈﺮ را وارد ﮐﻨﯿﻢ.
ﻣﺜﺎل :در ﻣﻮرد داده ﻫﺎي ﺳﻦ در ﻣﺜﺎل ﻗﺒﻞ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻣﯿﺎﻧﮕﯿﻦ ﺳﻦ را ﺑﺮاي ﻫﺮ ﺟﻨﺲ ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﻢ.
)> tapply(age,sex.f,mean
f m
26.5 26.5
ﺑﺮاي ﺗﻮﻟﯿﺪ ﯾﮏ ﻓﺎﮐﺘﻮر ﺑﺎ اﻟﮕﻮي ﻣﺸﺨﺺ از ﺗﺎﺑﻊ )( glاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
) gl(n,k,length,labels,ordered
در اﯾﻦ ﺗﺎﺑﻊ nﻣﺸﺨﺺ ﮐﻨﻨﺪه ﺗﻌﺪاد ﺳﻄﻮح k ،ﻣﺸﺨﺺ ﮐﻨﻨﺪه ﺗﻌﺪاد ﺗﮑﺮارﻫﺎ length ،ﻣﺸﺨﺺ ﮐﻨﻨﺪه ﻃﻮل ﻓﺎﮐﺘﻮر،
و labelsﻣﺸﺨﺺ ﮐﻨﻨﺪه ﺑﺮﭼﺴﺐ ﺳﻄﻮح ﻣﯽ ﺑﺎﺷﺪ .ﻫﭽﻨﯿﻦ orderedﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺳﻄﻮح ﻣﺮﺗﺐ ﺷـﺪه
ﺑﺎﺷﻨﺪ ﯾﺎ ﻧﻪ.
ﻣﺜﺎل :
)> gl(5,2
[1] 1 1 2 2 3 3 4 4 5 5
Levels: 1 2 3 4 5
)> gl(5,1,10
[1] 1 2 3 4 5 1 2 3 4 5
Levels: 1 2 3 4 5
)]> gl(5,1,10,labels=LETTERS[1:5
[1] A B C D E A B C D E
Levels: A B C D E
آراﯾﻪ ﻫﺎ ﯾﮑﯽ از اﺷﯿﺎء ﻣﻮﺟﻮد در Rﺑﺮاي ﮐﺎر ﺑﺎ داده ﻫﺎ ﻫﺴﺘﻨﺪ ﮐﻪ ﻣﺎ را ﻗﺎدر ﻣﯽ ﺳﺎزﻧﺪ ﺗﺎ داده ﻫﺎ را ﺑﻪ ﺻﻮرت ﭼﻨﺪ
ﺑﻌﺪي ﻧﮕﻪ داري ﮐﺮده و ﺑﺎ آﻧﻬﺎ ﮐﺎر ﮐﻨﯿﻢ .در ﺧﺎﻟﺖ ﺧﺎص ﺑﺮدارﻫﺎ آراﯾﻪ ﻫﺎي ﯾﮏ ﺑﻌﺪي و ﻣﺎﺗﺮﯾﺲ ﻫﺎ آراﯾﻪ ﻫـﺎي دو
ﺑﻌﺪي ﻫﺴﺘﻨﺪ .ﺳﺎده ﺗﺮﯾﻦ راه ﺳﺎﺧﺘﻦ ﯾﮏ آراﯾﻪ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( dimو ﺗﺒﺪﯾﻞ ﯾﮏ ﺑﺮدار ﺑﻪ ﯾﮏ آراﯾﻪ اﺳﺖ .ﺑﺮاي
ﺗﺒﺪﯾﻞ ﯾﮏ ﺑﺮدار از داده ﻫﺎ ﺑﻪ ﯾﮏ آراﯾﻪ ﮐﺎﻓﯿﺴﺖ ﯾﮏ ﺑﺮدار ﺑﻌﺪ را ﺷﺎﻣﻞ اﻧﺪازه ﻃﻮل ﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺑـﺮاي ﻫـﺮ ﺑﻌـﺪ
آراﯾﻪ ﺑﻪ ﺗﺎﺑﻊ )( dimﺗﺨﺼﯿﺺ دﻫﯿﻢ.
8
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
, , 2
, , 3
ﯾﮏ راه دﯾﮕﺮ ﺳﺎﺧﺘﻦ آراﯾﻪ ﻫﺎ و ﻣﺎﺗﺮﯾﺲ ﻫﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( arrayاﺳﺖ .ﺑﺮاي ﺳﺎﺧﺘﻦ ﯾﮏ آراﯾﻪ ﺑﺎ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ
ﺑﺮدار داده ﻫﺎ و ﺑﺮدار ﺑﻌﺪ را در ﺗﺎﺑﻊ ﻣﺸﺨﺺ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
9
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.2.3.2ﺳﺎﺧﺘﻦ ﻣﺎﺗﺮﯾﺲ
ﺑﺮاي ﺳﺎﺧﺖ ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﻋـﻼوه ﺑـﺮ ﺗـﺎﺑﻊ )( dimﻣـﯽ ﺗـﻮان از ﺗـﺎﺑﻊ )( matrixﻧﯿـﺰ اﺳـﺘﻔﺎده ﮐـﺮد .در ﺗـﺎﺑﻊ
)( matrixﺑﺎﯾﺪ ﺑﺮدار داده ﻫﺎ ،ﺗﻌﺪاد ﺳﻄﺮ ،و ﺗﻌﺪاد ﺳﺘﻮن را وارد ﮐﻨﯿﻢ .در ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ ﻣﺎﺗﺮﯾﺲ داده ﻫﺎي
ﺑﺮدار را ﺑﻪ ﺻﻮرت ﺳﻄﺮي ﻣﺮﺗﺐ ﮐﻨﺪ ﻗﺴﻤﺖ = byrowرا ﻣﺴﺎوي TRUEﻗﺮار ﻣﯽ دﻫﯿﻢ.
ﻣﺜﺎل :
ﺑﺮاي ﮐﺎر ﺑﺎ ﻣﺎﺗﺮﯾﺲ ﻫﺎ در Rﺗﻮاﺑﻊ و ﻗﺎﺑﻠﯿﺖ ﻫﺎﯾﯽ وﺟﻮد دارد ﮐﻪ ﺑﻪ ﺑﺮﺧﯽ از آﻧﻬﺎ اﺷﺎره ﻣﯽ ﮐﻨﯿﻢ.
ﺑﺮاي ﺗﺮاﻧﻬﺎده ﮐﺮدن ﯾﮏ ﻣﺎﺗﺮﯾﺲ از ﺗﺎﺑﻊ )( ، tﺑﺮاي ﻧﻤﺎﯾﺶ ﺗﻌﺪاد ﺳﻄﺮﻫﺎي ﯾﮏ ﻣﺎﺗﺮﯾﺲ از ﺗﺎﺑﻊ )( ، nrowو ﺑﺮاي
ﻧﻤﺎﯾﺶ ﺗﻌﺪاد ﺳﺘﻮن ﻫﺎي ﯾﮏ ﻣﺎﺗﺮﯾﺲ از ﺗﺎﺑﻊ )( ncolاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
10
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
> y
][,1] [,2] [,3] [,4
][1, 1 6 11 16
][2, 2 7 12 17
][3, 3 8 13 18
][4, 4 9 14 19
][5, 5 10 15 20
)> nrow(y
[1] 5
)> ncol(y
[1] 4
)> t(y
][,1] [,2] [,3] [,4] [,5
][1, 1 2 3 4 5
][2, 6 7 8 9 10
][3, 11 12 13 14 15
][4, 16 17 18 19 20
ﺑﺮاي ﺿﺮب اﻋﻀﺎي ﻣﺘﻨﺎﻇﺮ دو ﻣﺎﺗﺮﯾﺲ در ﻫﻢ در ﻣﺎﺗﺮﯾﺲ ﻫﺎي ﻫﻢ ﻣﺮﺗﺒـﻪ از " * " ،و ﺑـﺮاي ﺿـﺮب ﻣﺎﺗﺮﯾـﺴﯽ دو
ﻣﺎﺗﺮﯾﺲ در ﻫﻢ از " " %*%اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :
> m
][,1] [,2] [,3] [,4] [,5
][1, 2 12 22 32 42
][2, 4 14 24 34 44
][3, 6 16 26 36 46
][4, 8 18 28 38 48
][5, 10 20 30 40 50
> n
][,1] [,2] [,3] [,4] [,5
][1, 3 18 33 48 63
][2, 6 21 36 51 66
][3, 9 24 39 54 69
][4, 12 27 42 57 72
][5, 15 30 45 60 75
> m*n
][,1 ][,2 ][,3 ][,4 ][,5
][1, 6 216 726 1536 2646
][2, 24 294 864 1734 2904
][3, 54 384 1014 1944 3174
][4, 96 486 1176 2166 3456
[5,] 150 600 1350 2400 3750
> m%*%n
][,1 ][,2 ][,3 ][,4] [,5
[1,] 1290 2940 4590 6240 7890
[2,] 1380 3180 4980 6780 8580
[3,] 1470 3420 5370 7320 9270
[4,] 1560 3660 5760 7860 9960
[5,] 1650 3900 6150 8400 10650
11
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻣﻌﮑﻮس ﯾﮏ ﻣﺎﺗﺮﯾﺲ و ﯾﺎ ﺣﻞ ﯾﮏ ﻣﻌﺎدﻟﻪ ﻣﺎﺗﺮﯾﺴﯽ از ﺗﺎﺑﻊ )( solveاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .اﮔﺮ در اﯾـﻦ
ﺗﺎﺑﻊ ﻓﻘﻂ ﯾﮏ ﻣﺎﺗﺮﯾﺲ را وارد ﮐﻨﯿﻢ ﻣﻌﮑﻮس آن ﻣﺎﺗﺮﯾﺲ ﻣﺤﺎﺳﺒﻪ ﺧﻮاﻫﺪ ﺷﺪ ،و اﮔﺮ ﻋﻼوه ﺑﺮ ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﺿـﺮاﯾﺐ
ﻣﺎﺗﺮﯾﺲ ﭘﺎﺳﺦ را ﻧﯿﺰ وارد ﮐﻨﯿﻢ ﺟﻮاب ﻣﻌﺎدﻟﻪ ﻣﺎﺗﺮﯾﺴﯽ ﺑﻪ ﺷﮑﻞ b=AXﻣﺤﺎﺳﺒﻪ ﺧﻮاﻫﺪ ﺷﺪ.
ﻣﺜﺎل :
> b
][,1
][1, 4.5
][2, 6.0
][3, 7.5
][4, 9.0
> A
][,1] [,2] [,3] [,4
][1, 0 3 2 1
][2, 1 0 3 2
][3, 2 1 0 3
][4, 3 2 1 0
)> solve(A
][,1 ][,2 ][,3 ][,4
[1,] -0.20833333 0.04166667 0.04166667 0.29166667
[2,] 0.29166667 -0.20833333 0.04166667 0.04166667
[3,] 0.04166667 0.29166667 -0.20833333 0.04166667
[4,] 0.04166667 0.04166667 0.29166667 -0.20833333
)> solve(A,b
][,1
[1,] 2.25
[2,] 0.75
[3,] 0.75
[4,] 0.75
ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻣﻘﺎدﯾﺮ وﯾﮋه و ﺑﺮدارﻫﺎي وﯾﮋه ﯾﮏ ﻣﺎﺗﺮﯾﺲ از ﺗﺎﺑﻊ )( eigenاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
> z
][,1] [,2] [,3
][1, 1 3 5
][2, 3 1 2
][3, 5 2 1
)> eigen(z
$values
[1] 7.8390863 -0.7106916 -4.1283947
$vectors
][,1 ][,2 ][,3
[1,] -0.6465566 0.1916741 0.7383939
[2,] -0.4612978 -0.8691432 -0.1783099
[3,] -0.6075927 0.4559069 -0.6503692
در ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ ﺑﺎ وﺻﻞ ﮐﺮدن ﭼﻨﺪ ﺑﺮدار ﯾﺎ ﭼﻨﺪ ﻣﺎﺗﺮﯾﺲ ﺑﻪ ﻫﻢ ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﯾﺎ ﺑﺮدار ﺟﺪﯾﺪ ﺑﺴﺎزﯾﻢ از ﺗﻮاﺑﻊ
)( rbindو )( cbindاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺗﺎﺑﻊ )( rbindﺑﺮدارﻫﺎ ﯾﺎ ﻣﺎﺗﺮﯾﺲ ﻫﺎ را ﺑﻪ ﺻـﻮرت ﺳـﻄﺮي ﺑـﻪ ﻫـﻢ
وﺻﻞ ﻣﯽ ﮐﻨﺪ و ﺗﺎﺑﻊ )( cbindاﯾﻦ ﮐﺎر را ﺑﻪ ﺻﻮرت ﺳﺘﻮﻧﯽ اﻧﺠﺎم ﻣﯽ دﻫﺪ.
12
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
> x
[1] 6 9 12 15
> y
[1] 6.6 9.9 13.2 16.5
)> rbind(x,y
][,1] [,2] [,3] [,4
x 6.0 9.0 12.0 15.0
y 6.6 9.9 13.2 16.5
)> cbind(x,y
x y
[1,] 6 6.6
[2,] 9 9.9
[3,] 12 13.2
[4,] 15 16.5
.2.4ﻟﯿﺴﺖ ﻫﺎ
ﯾﮏ ﻟﯿﺴﺖ در Rﻣﺠﻤﻮﻋﻪ اي ﻣﻨﻈﻢ از اﺷﯿﺎء اﺳﺖ ﮐﻪ اﯾﻦ اﺷﯿﺎء را ﻣﻮﻟﻔﻪ ﻫﺎي آن ﻟﯿﺴﺖ ﻣﯽ ﻧﺎﻣﯿﻢ .ﺿﺮورﺗﯽ ﻧﺪارد ﮐﻪ
ﻣﻮﻟﻔﻪ ﻫﺎي ﯾﮏ ﻟﯿﺴﺖ ﻫﻤﻪ از ﯾﮏ ﻧﻮع ﺑﺎﺷﻨﺪ .ﺑـﻪ ﻋﻨـﻮان ﻣﺜـﺎل ﯾـﮏ ﻟﯿـﺴﺖ ﻣـﯽ ﺗﻮاﻧـﺪ ﺷـﺎﻣﻞ ﺑﺮدارﻫـﺎي ﻋـﺪدي،
ﺗﺎﺑﻊ )(list ﻣﺎﺗﺮﯾﺲ ﻫﺎ ،ﺑﺮدارﻫﺎي ﻣﻨﻄﻘﯽ ،آراﯾﻪ ﻫﺎ ،ﺑﺮدارﻫﺎي ﮐﺎراﮐﺘﺮي و ﻏﯿﺮه ﺑﺎﺷﺪ .ﺑﺮاي ﺳﺎﺧﺘﻦ ﯾﮏ ﻟﯿﺴﺖ از
اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .در ﺗﺎﺑﻊ )( listﻧﺎم ﻫﺮ ﻣﻮﻟﻔﻪ را وارد ﮐﺮده و ﺑﻌﺪ از ﻋﻼﻣـﺖ ﻣـﺴﺎوي ﺷـﺊ ﻣـﻮرد ﻧﻈـﺮ را وارد
ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
$wife
"[1] "Mary
$no.childern
[1] 3
$child.ages
[1] 4 7 9
ﺑﺮاي اﯾﻨﺪﮐﺲ ﮐﺮدن ﯾﮏ ﻟﯿﺴﺖ از دو ﻋﻼﻣﺖ ﺑﺮاﮐﺖ ﻣﺘﻮاﻟﯽ و ﺑﺮاي اﯾﻨـﺪﮐﺲ ﮐـﺮدن ﯾـﮏ ﻣﻮﻟﻔـﻪ از ﻟﯿـﺴﺖ از ﯾـﮏ
ﻋﻼﻣﺖ ﺑﺮاﮐﺖ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
13
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
]]> lst[[2
"[1] "Mary
]]"> lst[["name
"[1] "Ferd
])> lst[["child.ages"]][c(1,2
[1] 4 7
دﯾﺘﺎ ﻓﺮﯾﻢ ﻫﺎ از ﻟﺤﺎظ ﺳﺎﺧﺘﺎر ﺷﺒﺎﻫﺖ ﺑﺴﯿﺎر زﯾﺎدي ﺑﻪ ﻣﺎﺗﺮﯾﺲ ﻫﺎ دارﻧﺪ .ﯾﮏ دﯾﺘﺎ ﻓﺮﯾﻢ را ﻣﯽ ﺗﻮان ﻣﺎﺗﺮﯾﺴﯽ در ﻧﻈـﺮ
ﮔﺮﻓﺖ ﮐﻪ ﺳﺘﻮن ﻫﺎي آن ﺑﺮدارﻫﺎﯾﯽ ﺑﺎ ﺳﺎﺧﺘﺎرﻫﺎي ﻣﺨﺘﻠﻒ اﺳﺖ .ﯾﮏ دﯾﺘﺎ ﻓﺮﯾﻢ در اﺻـﻞ ﻟﯿـﺴﺘﯽ از ﺑﺮدارﻫـﺎي ﻫـﻢ
اﻧﺪازه و ﺑﺎ ﺳﺎﺧﺘﺎرﻫﺎي ﻣﺨﺘﻠﻒ اﺳﺖ .ﺑﺮاي ﺳﺎﺧﺘﻦ ﯾﮏ دﯾﺘﺎ ﻓﺮﯾﻢ از ﺗﺎﺑﻊ )( data.frameاﺳﺘﻔﺎده ﻣﯽ ﺷـﻮد .در
اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻧﺎم ﻣﻮرد ﻧﻈﺮ ﺑﺮاي ﻫﺮ ﺳﺘﻮن را ﺑﻪ ﻫﻤﺮاه ﺑﺮدار ﺷﺎﻣﻞ داده ﻫﺎي آن ﺳﺘﻮن وارد ﮐﻨﯿﻢ.
ﻣﺜﺎل :
ﯾﮏ دﯾﺘﺎ ﻓﺮﯾﻢ را ﻣﯽ ﺗﻮان ﻫﻤﺎﻧﻨﺪ ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﯾﺎ ﯾﮏ ﻟﯿﺴﺖ اﯾﻨﺪﮐﺲ ﮐﺮد .ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮان از ﻋﻼﻣﺖ " " $ﺑﺮاي
اﯾﻨﺪﮐﺲ ﮐﺮدن ﯾﮏ دﯾﺘﺎ ﻓﺮﯾﻢ اﺳﺘﻔﺎده ﮐﺮد.
ﻣﺜﺎل :
14
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﻧﺎم ﮔﺬاري ﯾﺎ ﻣﺸﺎﻫﺪه ﻧﺎم داده ﻫﺎي ﯾﮏ ﺷﺊ از ﺗﺎﺑﻊ )( namesاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي ﻧﺎم ﮔـﺬاري داده ﻫـﺎي
ﯾﮏ ﺷﺊ ﺑﺮدار ﺷﺎﻣﻞ ﮐﺮاﮐﺘﺮﻫﺎ را ﺑﻪ ﺗﺎﺑﻊ )( namesﺗﺨﺼﯿﺺ ﻣﯽ دﻫﯿﻢ و ﺑﺮاي ﻣﺸﺎﻫﺪه ﻧﺎم داده ﻫﺎي ﯾﮏ ﺷـﺊ آن
ﺷﺊ را در ﺗﺎﺑﻊ )( namesوارد ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
ﺑﺮاي ﻣﺮﺗﺐ ﮐﺮدن داده ﻫﺎ از ﺗﺎﺑﻊ )( sortاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( sortﻣﯽ ﺗـﻮان داده ﻫـﺎ را ﺑـﻪ
ﺻﻮرت اﻓﺰاﯾﺸﯽ ،ﮐﺎﻫﺸﯽ ،و ﯾﺎ ﺟﺰﺋﯽ ﻣﺮﺗﺐ ﮐﺮد.
ﻣﺜﺎل :
> x
[1] 4 5 3 4 2 4 1 1 2 5 3 4 5 2 3
)> sort(x
[1] 1 1 2 2 2 3 3 3 4 4 4 4 5 5 5
)> sort(x, decreasing=T
[1] 5 5 5 4 4 4 4 3 3 3 2 2 2 1 1
))> sort(x, partial=c(3,4
[1] 1 1 2 2 3 3 2 3 4 5 4 4 5 5 4
> x
[1] 4 5 3 4 2 4 1 1 2 5 3 4 5 2 3
15
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
> x
[1] 4 5 3 4 2 4 1 1 2 5 3 4 5 2 3
)> rank(x
[1] 10.5 14.0 7.0 10.5 4.0 10.5 1.5 1.5 4.0 14.0 7.0 10.5 14.0
4.0 7.0
> sex
[1] 2 2 2 2 1 1 1 2 2 2 1 2 2 1 2 2 1 1 2 2 2 2 1 1 2 2 1 2 2 2 1 1
1 1 2 1 2 1
[39] 1 2 2 2 2 2 1 2 2 1 1 1
)> table(sex
sex
1 2
21 29
> age
[1] 17 15 18 15 17 18 17 18 18 16 17 15 16 18 15 16 15 16 15 16 18
18 16 17 16
[26] 18 18 18 18 15 16 18 15 18 18 18 15 15 17 18 18 15 16 17 18 16
17 15 17 17
)> table(age
age
15 16 17 18
12 10 10 18
)> table(age,sex
sex
age 1 2
15 4 8
16 3 7
17 7 3
18 7 11
ﺑﺮاي ﺟﺪا ﮐﺮدن داده ﻫﺎي ﯾﮏ ﺑﺮدار ﺑﺮ ﺣﺴﺐ ﯾﮏ ﺑﺮدار دﯾﮕﺮ از ﺗﺎﺑﻊ )( splitاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
16
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
: ﻣﺜﺎل
> split(age,sex)
$`1`
[1] 17 18 17 17 18 15 16 16 17 18 16 18 15 18 18 15 17 18 15 17 17
$`2`
[1] 17 15 18 15 18 18 16 15 16 15 16 15 16 18 18 16 18 18 18 15 18
15 18 18 15
[26] 16 17 16 17
> split(sex,age)
$`15`
[1] 2 2 2 2 1 2 2 1 2 1 2 1
$`16`
[1] 2 2 2 1 2 1 2 1 2 2
$`17`
[1] 2 1 1 1 1 1 2 2 1 1
$`18`
[1] 2 1 2 2 1 2 2 2 1 2 2 1 1 2 1 2 2 1
ﺗﺎﺑﻌﯽ وﺟﻮد دارد ﮐﻪ ﻣﯽ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از آن ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ اﺣﺘﻤﺎل را ﺑﺮاي ﯾﮏ ﺗﻮزﯾـﻊR ﺑﺮاي ﻫﺮ ﺗﻮزﯾﻊ آﻣﺎري در
. در ﺟﺪول زﯾﺮ ﺑﺮﺧﯽ از اﯾﻦ ﺗﻮاﺑﻊ ﻣﻌﺮﻓﯽ ﺷﺪه اﻧﺪ.ﻣﺤﺎﺳﺒﻪ ﮐﺮده و ﯾﺎ اﻋﺪاد ﺗﺼﺎدﻓﯽ از ﯾﮏ ﺗﻮزﯾﻊ ﺗﻮﻟﯿﺪ ﮐﺮد
17
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
r ﺑﺮاي اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﺟﺪول ﻓﻮق ﺑﺎﯾﺪ ﺑﺮ ﺣﺴﺐ ﻧﻮع اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ،ﭘﯿﺶ از ﻧﺎم ﺗﺎﺑﻊ از ﺣـﺮوف ، d ، q ، pﯾـﺎ
اﺳﺘﻔﺎده ﮐﻨﯿﻢ .از ﺣﺮف pﺑﺮاي ﻣﺤﺎﺳﺒﻪ اﺣﺘﻤﺎل در ﺗﺎﺑﻊ ﺗﻮزﯾﻊ ،از ﺣﺮف qﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﭼﻨﺪك ﻫﺎ ،از ﺣﺮف dﺑﺮاي
ﻣﺤﺎﺳﺒﻪ ﭼﮕﺎﻟﯽ ،و از ﺣﺮف rﺑﺮاي ﺗﻮﻟﯿﺪ اﻋﺪاد ﺗﺼﺎدﻓﯽ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي آﺷﻨﺎﯾﯽ دﻗﯿـﻖ ﺑـﺎ ﻧﺤـﻮه ﻗـﺮار دادن
ﭘﺎراﻣﺘﺮﻫﺎ و ﻣﻘﺎدﯾﺮ در ﻫﺮ ﺗﺎﺑﻊ ﻣﯽ ﺗﻮان ﻧﺎم ﺗﺎﺑﻊ ﻣﻮرد ﻧﻈﺮ را ﺑﻌﺪ از ﯾﮏ ﻋﻼﻣﺖ ﺳﻮال ﺑﻪ ﻋﻨﻮان ﯾﮏ دﺳﺘﻮر وارد ﮐﺮد
ﺗﺎ ﺻﻔﺤﻪ helpﻣﺮﺑﻮط ﺑﻪ آن ﺗﺎﺑﻊ ﺑﺎز ﺷﻮد.
ﻣﺜﺎل :
)(> ?rnorm
)> rnorm(n=10
[1] -0.04785585 -0.31453549 1.01482215 -0.33774153 -0.46852454 -
0.42633759
[7] 0.88107806 0.58547995 -0.51812346 1.05938773
)> rnorm(n=10, mean=10, sd=15
[1] 12.962637 4.022534 29.767160 -19.041441 42.498506
20.358151
[7] 13.582569 -2.029278 35.003451 39.089246
)> pnorm(q=1.5
[1] 0.9331928
)> qnorm(p=0.05
[1] -1.644854
)> dbinom(x=15, size=20, prob=0.04
[1] 1.357375e-17
)> pbinom(q=5, size=20, prob=0.04
[1] 0.9999023
.5دﺳﺘﻮرات ﮐﻨﺘﺮﻟﯽ
.5.1دﺳﺘﻮر ﺷﺮط
ﺑﺮاي اﺟﺮاي دﺳﺘﻮرات ﺷﺮﻃﯽ در Rاز دﺳﺘﻮر if/elseاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ دﺳﺘﻮر ﺑﻪ ﺷـﮑﻞ زﯾـﺮ
اﺳﺖ.
در اﯾﻦ دﺳﺘﻮر expr_1ﻋﺒﺎرت ﺷﺮﻃﯽ اﺳﺖ ﮐﻪ ﺑﺎﯾﺪ ﻣﺸﺨﺺ ﺷﻮد .در ﺻﻮرﺗﯽ ﮐﻪ ﺷﺮط ﺑﺮﻗـﺮار ﺑﺎﺷـﺪ دﺳـﺘﻮرات
وارد ﺷﺪه در ﻗﺴﻤﺖ expr_2اﺟﺮا ﺧﻮاﻫﻨﺪ ﺷﺪ و در ﻏﯿﺮ اﯾـﻦ ﺻـﻮرت دﺳـﺘﻮرات وارد ﺷـﺪه ﭘـﺲ از elseدر
ﻗﺴﻤﺖ expr_3اﺟﺮا ﻣﯽ ﺷﻮﻧﺪ .در ﻗﺴﻤﺖ ﺷﺮط ﻣﯽ ﺗـﻮان از " && " و " || " ﺑـﻪ ﻋﻨـﻮان "و" و "ﯾـﺎ" ﻣﻨﻄﻘـﯽ
اﺳﺘﻔﺎده ﮐﺮد .ﺑﺮاي ﮔﺮوه ﺑﻨﺪي دﺳﺘﻮرات اﺟﺮاﯾﯽ از ﻋﻼﻣﺖ" } "و" { " اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .در ﮔﺮوه ﻫﺎ ﺑـﺮاي ﺟـﺪا
ﮐﺮدن دﺳﺘﻮرات از " ; " اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
18
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﺜﺎل :
.5.2دﺳﺘﻮرات ﺗﮑﺮار
در Rﺳﻪ دﺳﺘﻮر ﺗﮑﺮار وﺟﻮد دارد ﮐﻪ ﻋﺒﺎراﺗﺪ از ،repeat،forو .whileﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾـﻦ ﺳـﻪ دﺳـﺘﻮر ﺑـﻪ
ﺷﮑﻞ زﯾﺮ اﺳﺖ.
> for (name in expr_1) expr_2
در دﺳﺘﻮر forدر ﻗﺴﻤﺖ nameﻧﺎم ﻣﺘﻐﯿﺮ ﺷﻤﺎرﻧﺪه و در ﻗـﺴﻤﺖ expr_1ﺗﮑﺮارﻫـﺎ را ﻣـﺸﺨﺺ ﻣـﯽ ﮐﻨـﯿﻢ .در
repeatدر ﻗـﺴﻤﺖ expr ﻗﺴﻤﺖ expr_2ﻧﯿﺰ دﺳﺘﻮراﺗﯽ را ﮐﻪ ﺑﺎﯾﺪ ﺗﮑـﺮار ﺷـﻮﻧﺪ وارد ﻣـﯽ ﮐﻨـﯿﻢ .در دﺳـﺘﻮر
دﺳﺘﻮراﺗﯽ را ﮐﻪ ﺑﺎﯾﺪ ﺗﮑﺮار ﺷﻮﻧﺪ وارد ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي ﺗﻮﻗﻒ ﺗﮑـﺮار دﺳـﺘﻮرات در دﺳـﺘﻮر repeatاز ﮐﻠﯿـﺪ Esc
اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .در دﺳﺘﻮر whileدر ﻗﺴﻤﺖ conditionﺷﺮط ﭘﺎﯾﺎن ﺗﮑﺮار و در ﻗﺴﻤﺖ exprدﺳـﺘﻮراﺗﯽ را
ﮐﻪ ﺑﺎﯾﺪ ﺗﮑﺮار ﺷﻮﻧﺪ وارد ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
19
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﻧﻮﺷﺘﻦ ﺗﻮاﺑﻊ ﺷﺨﺼﯽ در Rاز ﺗﺎﺑﻊ )( functionاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺷﮑﻞ ﮐﻠﯽ اﺳﺘﻔﺎده از اﯾـﻦ ﺗـﺎﺑﻊ ﺑـﺮاي
ﻧﻮﺷﺘﻦ ﺗﻮاﺑﻊ ﺷﺨﺼﯽ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ.
arg_1,arg_2,... در ﺳﺎﺧﺘﺎر ﻓﻮق در ﻗﺴﻤﺖ nameﻧﺎم ﻣﻮرد ﻧﻈﺮ ﺑﺮاي ﺗﺎﺑﻊ را وارد ﻣـﯽ ﮐﻨـﯿﻢ .در ﻗـﺴﻤﺖ
ﻧﯿﺰ ﭘﺎراﻣﺘﺮﻫﺎي ﺗﺎﺑﻊ ﻣﻮرد ﻧﻈﺮ را وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻫﻨﮕﺎم ﺗﻌﯿﯿﻦ ﭘﺎراﻣﺘﺮﻫﺎ در ﺻﻮرت ﺗﻤﺎﯾﻞ ﻣﯽ ﺗـﻮان ﺑـﺎ اﺳـﺘﻔﺎده از
ﻋﻼﻣﺖ ﻣﺴﺎوي ﻣﻘﺪار ﭘﯿﺶ ﻓﺮﺿﯽ را ﺑﺮاي ﻫﺮ ﭘﺎراﻣﺘﺮ ﻣﺸﺨﺺ ﮐﺮد .در ﻗﺴﻤﺖ expressionﻧﯿﺰ دﺳﺘﻮرات ﺑﺪﻧـﻪ
ﺗﺎﺑﻊ ﻧﻮﺷﺘﻪ ﻣﯽ ﺷﻮد .در ﻧﻮﺷﺘﻦ دﺳﺘﻮرات ﺑﺪﻧﻪ ﯾﮏ ﺗﺎﺑﻊ ﻣﯽ ﺗﻮان از ﺗﻮاﺑﻊ دﯾﮕﺮ ﻧﯿﺰ اﺳﺘﻔﺎده ﮐﺮده و ﯾـﺎ ﺣﺘـﯽ ﺗﻮاﺑـﻊ
ﺷﺨﺼﯽ ﻧﻮﺷﺖ .ﻓﺮاﺧﻮاﻧﯽ و اﺳﺘﻔﺎده از اﯾﻦ ﺗﻮاﺑﻊ ﻫﻤﺎﻧﻨﺪ دﯾﮕﺮ ﺗﻮاﺑﻊ Rﻣﯽ ﺑﺎﺷﺪ ،اﻟﺒﺘـﻪ ﺑـﺎ اﯾـﻦ ﺗﻔـﺎوت ﮐـﻪ ﺑـﺮاي
ﺗﺨﺼﯿﺺ ﺧﺮوﺟﯽ ﯾﮏ ﺗﺎﺑﻊ ﺷﺨﺼﯽ ﺑﻪ ﯾﮏ ﺷﺊ از ﻋﻼﻣﺖ" " <<-ﺑﻪ ﺟﺎي " " <-اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺎ اﺳﺘﻔﺎده از
ﺗـﺎﺑﻊ )(function ﺷﯿﻮه اي ﻣﺸﺎﺑﻪ ﻣﯽ ﺗﻮان ﻋﻤﻠﮕﺮ ﺷﺨﺼﯽ ﻧﯿﺰ ﻧﻮﺷﺖ .ﯾﮏ ﻋﻤﻠﮕﺮ ﺷﺨﺼﯽ ﻧﯿـﺰ ﺑـﺎ اﺳـﺘﻔﺎده از
ﻧﻮﺷﺘﻪ ﻣﯽ ﺷﻮد .ﺷﮑﻞ ﮐﻠﯽ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( functionﺑﺮاي ﻧﻮﺷﺘﻦ ﻋﻤﻠﮕﺮ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ.
در ﻗﺴﻤﺖ " " %!%ﺑﻪ ﺟﺎي ﻋﻼﻣﺖ! ﮐﺎراﮐﺘﺮ ﻣـﻮرد ﻧﻈـﺮ ﺑـﺮاي ﻧـﺸﺎن دادن ﻋﻤﻠﮕـﺮ را ﺑـﯿﻦ دو ﻋﻼﻣـﺖ %ﺗﻌﯿـﯿﻦ
ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ X,yﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ ﻋﻤﻠﮕﺮ ﺑﯿﻦ ﭼﻪ اﺷﯿﺎﺋﯽ ﻋﻤﻞ ﮐﻨﺪ .در ﻗﺴﻤﺖ آﺧﺮ ﻧﯿﺰ ﺑﺪﻧﻪ ﻋﻤﻠﮕﺮ را
ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﯿﻢ .ﻋﻤﻠﮕﺮ ﺿﺮب ﻣﺎﺗﺮﯾﺲ ﻫﺎ ، " %*% " ،ﻧﻤﻮﻧﻪ اي از ﻋﻤﻠﮕﺮﻫﺎي ﺷﺨﺼﯽ اﺳﺖ.
ﻣﺜﺎل :ﺗﺎﺑﻊ زﯾﺮ ﺑﺮدار ﻋﺪدي xرا ﮔﺮﻓﺘﻪ و ﺑﺮاي ﻣﻘﺎﯾﺴﻪ ﻣﯿﺎﻧﻪ آن ﺑﺎ ﺻﻔﺮ از آزﻣﻮن ﻋﻼﻣﺖ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ.
20
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
در Rﻧﻤﻮدارﻫﺎ و ﺗﺮﺳﯿﻤﺎت در ﭘﻨﺠﺮه اي ﻣﺠﺰا ﺑﻪ ﻧﺎم ﭘﻨﺠﺮه ﮔﺮاﻓﯿﮏ ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮﻧﺪ .اﯾﻦ ﭘﻨﺠﺮه ﺑﺎ اﺳـﺘﻔﺎده از
ﺗﺎﺑﻊ )( windowsﺑﺎز ﻣﯽ ﺷﻮد .اﻟﺒﺘﻪ اﺳﺘﻔﺎده از اﯾﻦ ﺗﺎﺑﻊ ﺿﺮورﺗﯽ ﻧﺪارد زﯾﺮا در رﺳﻢ ﻫﺮ ﻧﻤـﻮدار اﯾـﻦ ﭘﻨﺠـﺮه ﺑـﻪ
ﺻﻮرت اﺗﻮﻣﺎﺗﯿﮏ ﺑﺎز ﻣﯽ ﺷﻮد .ﺑﺮاي ﮐﺴﺐ اﻃﻼﻋﺎت ﮐﺎﻣﻞ در ﻣﻮرد ﺗﺎﺑﻊ )( windowsﻣﯽ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر
)( ?windowsاز ﻓﺎﯾﻞ helpﮐﻤﮏ ﮔﺮﻓﺖ .در ﺣﺎﻟﺖ ﮐﻠﯽ ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﻧﻤﻮدار در Rرا ﻣﯽ ﺗـﻮان ﺑـﻪ ﺳـﻪ دﺳـﺘﻪ
ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﺑﺎﻻ ،ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﭘﺎﯾﯿﻦ ،و ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺗﻌﺎﻣﻠﯽ ﺗﻘﺴﯿﻢ ﮐﺮد .ﺑﺎ اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻄﺢ
ﺑﺎﻻ ﻗﺎدر ﺧﻮاﻫﯿﻢ ﺑﻮد ﻧﻤﻮدارﻫﺎﯾﯽ ﺷﺎﻣﻞ ﻣﺤﻮرﻫﺎ ،ﺑﺮﭼﺴﺐ ﻫﺎ ،ﻋﻨﻮان ،و ﻣﻮاردي از اﯾﻦ ﻗﺒﯿﻞ رﺳﻢ ﮐﻨﯿﻢ .ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ
ﺳﻄﺢ ﭘﺎﯾﯿﻦ ﻣﺎ را ﻗﺎدر ﻣﯽ ﺳﺎزﻧﺪ ﮐﻪ روي ﻧﻤﻮدارﻫﺎي ﻣﻮﺟﻮد ﺗﻐﯿﯿﺮاﺗﯽ اﻋﻤﺎل ﮐﻨﯿﻢ ،و ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺗﻌﺎﻣﻠﯽ ﺑﻪ ﻣﺎ اﯾـﻦ
اﻣﮑﺎن را ﻣﯽ دﻫﻨﺪ ﺗﺎ ﺑﻪ ﺗﺒﺎدل اﻃﻼﻋﺎت ﺑﺎ ﻧﻤﻮدارﻫﺎي ﻣﻮﺟﻮد ﺑﭙﺮدازﯾﻢ .در اداﻣﻪ ﺑﻪ ﺑﺮرﺳﯽ اﻧﻮاع ﺗﻮاﺑـﻊ و دﺳـﺘﻮرات
ﺗﺮﺳﯿﻢ ﺧﻮاﻫﯿﻢ ﭘﺮداﺧﺖ.
)(plot .1.1ﺗﺎﺑﻊ
ﯾﮑﯽ از ﭘﺮﮐﺎرﺑﺮد ﺗﺮﯾﻦ ﺗﻮاﺑﻊ رﺳﻢ ﻧﻤﻮدار در Rﺗﺎﺑﻊ )( plotاﺳﺖ .در ﺻﻮرﺗﯽ ﮐـﻪ از ﺗـﺎﺑﻊ )( plotﺑـﻪ ﺷـﮑﻞ
x ) plot(xﯾﺎ ) plot(x,yاﺳﺘﻔﺎده ﮐﻨﯿﻢ ،ﮐﻪ xو yدو ﺑﺮدارﻧﺪ ،ﺑﻪ ﺗﺮﺗﯿﺐ ﻧﻤﻮدار ﺑﺮدار xو ﻧﻤﻮدار ﭘﺮاﮐﻨـﺪﮔﯽ
در ﻣﻘﺎﺑﻞ yرﺳﻢ ﺧﻮاﻫﺪ ﺷﺪ.
ﻣﺜﺎل :
21
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)> plot(x,y
22
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
در ﺻﻮرﺗﯽ ﮐﻪ از ﺗﺎﺑﻊ )( plotﺑﻪ ﺷﮑﻞ ) plot(fﯾﺎ ) plot(f,yاﺳﺘﻔﺎده ﮐﻨﯿﻢ ،ﮐﻪ fﯾﮏ ﻓـﺎﮐﺘﻮر و yﯾـﮏ
ﺑﺮدار اﺳﺖ ،ﺑﻪ ﺗﺮﺗﯿﺐ ﻧﻤﻮدار ﻣﯿﻠﻪ اي fو ﻧﻤﻮدار ﺟﻌﺒﻪ اي yدر ﻣﻘﺎﺑﻞ fرﺳﻢ ﺧﻮاﻫﺪ ﺷﺪ.
ﻣﺜﺎل :
23
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(curve .1.2ﺗﺎﺑﻊ
از ﺗﺎﺑﻊ )( curveﺑﺮاي رﺳﻢ ﻣﻨﺤﻨﯽ ﯾﮏ ﺗﺎﺑﻊ در ﻣﺤﺪوده ﺗﻌﯿﯿﻦ ﺷﺪه اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .از اﯾﻦ ﺗﺎﺑﻊ ﻣﯽ ﺗﻮان ﺑـﺮاي
ﺑﺮرﺳﯽ ﻣﻨﺤﻨﯽ ﺗﻮزﯾﻊ ﻫﺎي آﻣﺎري اﺳﺘﻔﺎده ﮐﺮد .ﺗﺎﺑﻌﯽ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻣﻨﺤﻨﯽ آن رﺳﻢ ﺷﻮد ﯾﺎ ﺑﺎﯾﺪ ﺑﻪ ﺷﮑﻞ ﮐﻠﯽ ﺗﺎﺑﻌﯽ
از " " xﺑﺎﺷﺪ ،و ﯾﺎ ﺑﺎﯾﺪ ﺗﺎﺑﻌﯽ از ﯾﮏ ﺑﺮدار ﺑﺎﺷﺪ.
ﻣﺜﺎل :
)> curve(dchisq(x,3),0,10
)(pairs .1.3ﺗﺎﺑﻊ
از ﺗﺎﺑﻊ )( pairsﺑﺮاي رﺳﻢ ﻫﺮ ﺳﺘﻮن ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﻋﺪدي در ﻣﻘﺎﺑﻞ ﺳﺘﻮن ﻫﺎي دﯾﮕﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :
24
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(coplot .1.4ﺗﺎﺑﻊ
ﺑﺮاي رﺳﻢ ﯾﮏ ﺑﺮدار در ﻣﻘﺎﺑﻞ ﯾﮏ ﺑﺮدار دﯾﮕﺮ ﺑﻪ ﺷﺮط ﯾﮏ ﺑﺮدار ﯾﺎ ﯾﮏ ﻓﺎﮐﺘﻮر از ﺗﺎﺑﻊ )( coplotﺑﺎ ﺳﺎﺧﺘﺎر ﮐﻠﯽ
زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
)> coplot(a~b|c
در ﺻﻮرﺗﯽ ﮐﻪ ﺷﺮط ﺗﺎﺑﻊ ﯾﮏ ﻓﺎﮐﺘﻮر ﺑﺎﺷﺪ دو ﺑﺮدار در ﺳﻄﻮح آن ﻓﺎﮐﺘﻮر در ﻣﻘﺎﺑﻞ ﻫﻢ رﺳﻢ ﺧﻮاﻫﻨﺪ ﺷﺪ.
ﻣﺜﺎل :
25
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(hist .1.5ﺗﺎﺑﻊ
26
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(barplot .1.6ﺗﺎﺑﻊ
ﺑﺮاي رﺳﻢ ﻧﻤﻮدار ﻣﯿﻠﻪ اي ﯾﮏ ﺑﺮدار از ﺗﺎﺑﻊ )( barplotاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺮدار وارد ﺷـﺪه در اﯾـﻦ ﺗـﺎﺑﻊ ﺑـﺮدار
ﻓﺮاواﻧﯽ ﻫﺎ ﻣﯽ ﺑﺎﺷﺪ.
ﻣﺜﺎل :
)(boxplot .1.7ﺗﺎﺑﻊ
از ﺗﺎﺑﻊ )( boxplotﺑﺮاي رﺳﻢ ﻧﻤﻮدار ﺟﻌﺒﻪ اي اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺮاي رﺳﻢ ﻧﻤﻮدار ﺟﻌﺒـﻪ اي ﺗﻮﺳـﻂ اﯾـﻦ ﺗـﺎﺑﻊ
ﻣﯽ ﺗﻮان از ﯾﮏ ﺑﺮدار ﯾﺎ از ﻓﺮﻣﻮﻟﯽ ﺷﺎﻣﻞ ﺑﺮدار و ﻓﺎﮐﺘﻮر اﺳﺘﻔﺎده ﮐﺮد.
ﻣﺜﺎل :
27
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(dotchart .1.8ﺗﺎﺑﻊ
28
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻪ ﻣﺘﻐﯿﺮي ﻋﺒﺎرﺗﻨﺪ از )( ، contour() ، imageو )( .perspﺗﻔﺎوت اﯾـﻦ ﺳـﻪ ﺗـﺎﺑﻊ در ﺷـﯿﻮه
)(contour ﻧﻤﺎﯾﺶ ﻧﻤﻮدار در آﻧﻬﺎﺳﺖ .ﺗﺎﺑﻊ )( imageﻣﺘﻐﯿﺮ ﺳﻮم را ﺑﺎ رﻧﮓ ﻫﺎي ﻣﺘﻔﺎوت ﻧﺸﺎن ﻣﯽ دﻫﺪ .ﺗﺎﺑﻊ
ﻣﺘﻐﯿﺮ ﺳﻮم را ﺑﻪ ﺻﻮرت ﻧﻘﺸﻪ اي ﻧﺸﺎن ﻣﯽ دﻫﺪ ،و ﺗﺎﺑﻊ )( perspﻧﻤﻮدار را ﺑﻪ ﺻﻮرت ﺳﻪ ﺑﻌﺪي ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ.
ﻧﮑﺘﻪ اي ﮐﻪ ﺑﺎﯾﺪ ﺑﻪ آن ﺗﻮﺟﻪ داﺷﺖ اﯾﻦ اﺳﺖ ﮐﻪ در ﻫﺮ ﺳﻪ ﺗﺎﺑﻊ ﻓﻮق ﺑﺎﯾﺪ ﻣﺘﻐﯿﺮ ﺳﻮم را ﺑـﻪ ﺻـﻮرت ﻣـﺎﺗﺮﯾﺲ وارد
ﮐﺮد.
ﻣﺜﺎل :
29
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
> contour(x,y,z)
> persp(x,y,z)
30
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﺑﺮرﺳﯽ و ﻣﻘﺎﯾﺴﻪ ﺗﻮزﯾﻊ ﻫﺎ از ﺳﻪ ﺗﺎﺑﻊ )( ، qqline() ، qqnormو )( qqplotاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑـﺮاي
ﺑﺮرﺳﯽ ﻧﺮﻣﺎل ﺑﻮدن ﺗﻮزﯾﻊ داده ﻫﺎي ﯾﮏ ﺑﺮدار از ﺗﺎﺑﻊ )( qqnormاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺮاي رﺳـﻢ ﺧـﻂ ﻧﺮﻣـﺎل روي
ﻧﻤﻮدار رﺳﻢ ﺷﺪه از ﺗﺎﺑﻊ )( qqlineاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ،و ﺑﺮاي ﻣﻘﺎﯾﺴﻪ ﺗﻮزﯾﻊ دو ﻣﺘﻐﯿﺮ و ﺑﺮرﺳـﯽ ﻫﻤﺘﻮزﯾـﻊ ﺑـﻮدن
آﻧﻬﺎ از ﺗﺎﺑﻊ )( qqplotاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :
31
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
> qqline(x)
32
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي رﺳﻢ ﻧﻤﻮدارﻫﺎي ﺳﺮي زﻣﺎﻧﯽ اﺑﺘﺪا ﺑﺎﯾﺪ ﺑﺮدار ﻣﺸﺎﻫﺪات ر ا ﺑﻪ ﺳﺮي زﻣـﺎﻧﯽ ﺗﺒـﺪﯾﻞ ﮐﻨـﯿﻢ .ﺑـﺮاي ﺗﺒـﺪﯾﻞ ﺑـﺮدار
ﻣﺸﺎﻫﺪات ﺑﻪ ﺳﺮي زﻣﺎﻧﯽ از ﺗﺎﺑﻊ )( tsاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﭘﺲ از ﺗﺒﺪﯾﻞ ﯾﮏ ﺑﺮدار ﺑـﻪ ﯾـﮏ ﺳـﺮي زﻣـﺎﻧﯽ از ﺗﻮاﺑـﻊ
)( acfو )( pacfﺑﺮاي رﺳﻢ ﻧﻤﻮدارﻫﺎي ACFو PACFﺳﺮي زﻣﺎﻧﯽ ﻣﻮرد ﻧﻈﺮ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
> x <-
c(14,11,10,13,20,15,19,17,12,18,17,24,21,15,22,16,20,23,19,25,23,26,
)30
)> T <- ts(x
)> plot(T
33
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)> acf(T
)> pacf(T
34
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
در ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﺑﺎﻻ آرﮔﻮﻣﺎن ﻫﺎﯾﯽ وﺟﻮد دارﻧﺪ ﮐﻪ ﺑﺎ ﻣﻘﺪار دﻫﯽ آﻧﻬﺎ ﻣـﯽ ﺗـﻮان ﺑـﻪ ﺻـﻮرت دﻟﺨـﻮاه ﺑﺮﺧـﯽ
ﺟﺰﺋﯿﺎت رﺳﻢ ﻧﻤﻮدار را ﺗﻐﯿﯿﺮ داده و ﯾﺎ ﺟﺰﺋﯿﺎﺗﯽ را ﺑﻪ ﻧﻤﻮدار اﺿﺎﻓﻪ ﮐﺮد .ﺑﺮﺧﯽ از اﯾﻦ آرﮔﻮﻣﺎن ﻫﺎ ﺑﻪ ﺷﺮح زﯾﺮﻧﺪ.
= : typeﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ آرﮔﻮﻣﺎن ﻣﯽ ﺗﻮان ﻧﻮع ﻧﻤﺎﯾﺶ ﻧﻤﻮدار را ﺗﻌﯿﯿﻦ ﮐﺮد .ﻣﻘـﺪار ﭘـﯿﺶ ﻓـﺮض اﯾـﻦ آرﮔﻮﻣـﺎن
" " pاﺳﺖ ﮐﻪ ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﻧﻤﻮدار ﺑﻪ ﺻﻮرت ﻧﻘﻄﻪ اي ﻧﻤﺎﯾﺶ داده ﺷﻮد .ﻣﯽ ﺗﻮان اﯾﻦ آرﮔﻮﻣﺎن را ﺑـﻪ دﻟﺨـﻮاه
ﻣﻘﺪار دﻫﯽ ﮐﺮد .از ﻣﻘﺪار " " lﺑﺮاي ﻧﻤﺎﯾﺶ ﺧﻄﯽ ،از ﻣﻘﺪار " " bو " " oﺑـﺮاي ﻧﻤـﺎﯾﺶ ﺧﻄـﯽ و ﻧﻘﻄـﻪ اي ،از
ﻣﻘﺪار " " hﺑﺮاي ﻧﻤﺎﯾﺶ ﺑﻪ ﺻﻮرت ﺧﻂ ﻫﺎي ﻋﻤﻮد ﺑﺮ ﻣﺤﻮر اﻓﻘﯽ ،و از ﻣﻘﺪار " " sو " " Sﺑﺮاي ﻧﻤﺎﯾﺶ ﭘﻠﻪ اي
اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .در ﺻﻮرﺗﯽ ﮐﻪ از ﻣﻘﺪار " " nاﺳﺘﻔﺎده ﺷﻮد ﻧﻤﻮدار رﺳﻢ ﺷﺪه اﻣﺎ ﭼﯿﺰي ﻧﻤﺎﯾﺶ داده ﻧﻤﯽ ﺷﻮد.
ﻣﺜﺎل :
35
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
= xlabو = : ylabاز اﯾﻦ دو آرﮔﻮﻣﺎن ﺑﺮاي ﺑﺮﭼﺴﺐ ﮔﺬاري ﻣﺤﻮر اﻓﻘﯽ و ﻋﻤﻮدي اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
)"> plot(x,type="h",xlab="order",ylab="measure
= mainو = : subاز = mainﺑﺮاي ﻗﺮار دادن ﻋﻨﻮان ﻧﻤﻮدار در ﺑﺎﻻ و از = subﺑﺮاي ﻗﺮار دادن زﯾﺮﻋﻨـﻮان ﻧﻤـﻮدار
در ﭘﺎﯾﯿﻦ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :
= : colﺑﺮاي اﻧﺘﺨﺎب رﻧﮓ ﻧﻤﻮدار از = colاﺳﺘﻔﺎده ﮐﺮده و در ﻣﻘﺎﺑﻞ آن ﻧﺎم ﯾـﺎ ﺷـﻤﺎره رﻧـﮓ ﻣـﻮرد ﻧﻈـﺮ را وارد
ﻣﯽ ﮐﻨﯿﻢ.
36
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
دﺳﺘﻮرﻫﺎي ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﭘﺎﯾﯿﻦ ﻣﺎ را ﻗﺎدر ﻣﯽ ﺳﺎزﻧﺪ ﺗﺎ ﻣﻮاردي از ﻗﺒﯿﻞ ﻧﻘﻄﻪ ﻫﺎ ،ﺧﻄﻮط ،و ﻧﻮﺷﺘﻪ ﻫﺎ را ﺑﻪ ﻧﻤﻮدارﻫﺎي
رﺳﻢ ﺷﺪه ﺗﻮﺳﻂ دﺳﺘﻮرﻫﺎي ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﺑﺎﻻ اﺿﺎﻓﻪ ﮐﻨﯿﻢ .ﺑﺮﺧﯽ از ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﭘﺎﯾﯿﻦ ﺑﻪ ﺷﺮح زﯾﺮﻧﺪ.
)(text .2.1ﺗﺎﺑﻊ
اﯾﻦ ﺗﺎﺑﻊ ﻣﺎ را ﻗﺎدر ﻣﯽ ﺳﺎزد ﺗﺎ ﺑﺮداري از اﻋﺪاد ﯾﺎ ﮐﺎراﮐﺘﺮﻫﺎ را ﺑﻪ ﻧﻘﺎط ﯾﮏ ﻧﻤﻮدار اﺿﺎﻓﻪ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ
ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
)text(x,y,labels, ...
در اﯾﻦ ﺗﺎﺑﻊ xو yﺑﺮدارﻫﺎي ﻣﺸﺨﺺ ﮐﻨﻨﺪه ﻧﻘﺎط ﻣﻮرد ﻧﻈﺮ ،و lablesﺑﺮدار ﺷﺎﻣﻞ اﻋﺪاد ﯾﺎ ﮐﺮاﮐﺘﺮﻫﺎي ﻣﻮرد ﻧﻈﺮ
اﺳﺖ.
ﻣﺜﺎل :
ﻣﺜﺎل :ﯾﮑﯽ از ﺑﯿﺸﺘﺮﯾﻦ ﻣﻮارد اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( textﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ.
)"> plot(x,y,type="n
))"> text(x,y,c("A","B","C","D","E","F","G","H","I","J
37
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(abline .2.2ﺗﺎﺑﻊ
ﺑﺮاي رﺳﻢ ﯾﮏ ﺧﻂ ﺑﺎ ﺷﯿﺐ و ﻋﺮض از ﻣﺒﺪاء دﻟﺨﻮاه روي ﯾﮏ ﻧﻤﻮدار از ﺗﺎﺑﻊ )( ablineاﺳﺘﻔﺎده ﻣـﯽ ﺷـﻮد .در
ﺻﻮرﺗﯽ ﮐﻪ از اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ ) abline(a,bاﺳﺘﻔﺎده ﮐﻨﯿﻢ ﺧﻄﯽ ﺑﺎ ﻋﺮض از ﻣﺒﺪاء aو ﺷﯿﺐ bروي ﻧﻤـﻮدار
رﺳﻢ ﺧﻮاﻫﺪ ﺷﺪ .اﮔﺮ از اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ ) abline(v=xﯾﺎ ) abline(h=yاﺳﺘﻔﺎده ﮐﻨﯿﻢ از ﻫﺮ ﻧﻘﻄﻪ ﻧﻤـﻮدار
ﺑﻪ ﺗﺮﺗﯿﺐ ﺧﻄﻮط ﻋﻤﻮد ﺑﺮ ﻣﺤﻮر xﯾﺎ yرﺳﻢ ﺧﻮاﻫﺪ ﺷﺪ.
ﻣﺜﺎل :
38
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)> plot(x,y
)> abline(h=y
)(legend .2.3ﺗﺎﺑﻊ
از ﺗﺎﺑﻊ )( legendﺑﺮاي وارد ﮐﺮدن ﯾﮏ ﻧﻮﺷﺘﻪ درﻗﺴﻤﺘﯽ از ﻧﻤﻮدار اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .در اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾـﺪ ﻣﺨﺘـﺼﺎت
ﻧﻘﻄﻪ ﻣﻮرد ﻧﻈﺮ و ﻧﻮﺷﺘﻪ ﻣﻮرد ﻧﻈﺮ را وارد ﮐﻨﯿﻢ.
ﻣﺜﺎل :
39
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
در اﯾﻦ ﺗﺎﺑﻊ ﻣﯽ ﺗﻮان آرﮔﻮﻣﺎن ﻫﺎﯾﯽ ﻧﯿﺰ وارد ﮐﺮد .ﺑﺮﺧﯽ از اﯾﻦ آرﮔﻮﻣﺎن ﻫﺎ ﺑﻪ ﺷﺮح زﯾﺮﻧﺪ.
= : fillﺑﺎ وارد ﮐﺮدن ﻧﺎم ﯾﺎ ﺷﻤﺎره رﻧﮓ ﻣﺮﺑﻌﯽ ﺑﺎ آن رﻧﮓ وارد ﻧﻤﻮدار ﻣﯽ ﮐﻨﺪ.
= : ltyﺑﺎ وارد ﮐﺮدن ﺷﻤﺎره ﺧﻂ ﻣﻮرد ﻧﻈﺮ ﺧﻄﯽ ﺑﺎ آن ﻧﻮع روي ﻧﻤﻮدار رﺳﻢ ﻣﯽ ﮐﻨﺪ.
= : lwdﺑﺎ وارد ﮐﺮدن اﻧﺪازه ﺿﺨﺎﻣﺖ ﺧﻄﯽ ﺑﺎ آن ﺿﺨﺎﻣﺖ روي ﻧﻤﻮدار رﺳﻢ ﻣﯽ ﮐﻨﺪ.
= : pchﺑﺎ وارد ﮐﺮدن ﺷﻤﺎره ﯾﺎ ﮐﺎراﮐﺘﺮ ﻣﻮرد ﻧﻈﺮ آن ﮐﺎراﮐﺘﺮ را وارد ﻧﻤﻮدار ﻣﯽ ﮐﻨﺪ.
)(title .2.4ﺗﺎﺑﻊ
از اﯾﻦ ﺗﺎﺑﻊ ﺑﺮاي وارد ﮐﺮدن ﻋﻨﻮان در ﺑﺎﻻي ﻧﻤﻮدار و زﯾﺮﻋﻨﻮان در ﭘﺎﯾﯿﻦ ﻧﻤﻮدار اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل :
)> hist(x
> title("\n\n\n normal sample plot"," the plot of a sample of a
)" normal distributed
40
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
دﺳﺘﻮرات ﺗﺮﺳﯿﻢ ﺗﻌﺎﻣﻠﯽ ﺑﻪ ﻣﺎ اﯾﻦ اﻣﮑﺎن را ﻣﯽ دﻫﻨﺪ ﺗﺎ از ﻃﺮﯾﻖ ﻣﻮس اﻃﻼﻋﺎﺗﯽ را از ﻧﻤﻮدار درﯾﺎﻓﺖ ﮐﺮده ﯾﺎ ﺑﻪ آن
وارد ﮐﻨﯿﻢ .ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺗﻌﺎﻣﻠﯽ ﺑﻪ ﺷﺮح زﯾﺮﻧﺪ.
)(locator .3.1ﺗﺎﺑﻊ
از اﯾﻦ ﺗﺎﺑﻊ ﺑﺮاي ﺗﻌﯿﯿﻦ ﻣﺨﺘﺼﺎت ﻧﻘﺎط ﺗﻮﺳﻂ ﻣﻮس اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺑﺎ ﻗﺮار دادن اﯾﻦ ﺗﺎﺑﻊ در ﺗﻮاﺑﻊ دﯾﮕﺮ ﻣﯽ ﺗﻮان از
ﻣﻘﺪاري ﮐﻪ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﻋﻨﻮان ﻣﺨﺘﺼﺎت ﻧﻘﻄﻪ ﮐﻠﯿﮏ ﺷﺪه ﺗﻮﺳﻂ ﻣﻮس ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ اﺳﺘﻔﺎده ﮐﺮد .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾـﻦ
ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
)locator(n,type
آرﮔﻮﻣﺎن nﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﭼﻨﺪ ﻧﻘﻄﻪ ﺗﻮﺳﻂ ﻣﻮس ﮐﻠﯿﮏ ﺷﻮد ،و آرﮔﻮﻣﺎن typeﻫﻤﺎﻧﻨﺪ آرﮔﻮﻣﺎن typeدر
ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺳﻄﺢ ﺑﺎﻻ ﻋﻤﻞ ﻣﯽ ﮐﻨﺪ و ﻣﯽ ﺗﻮاﻧﺪ ﻣﻘﺎدﯾﺮ " ، " p " ، " l " ، " nو ﯾﺎ " " oرا اﺧﺘﯿﺎر ﮐﻨﺪ.
ﻣﺜﺎل :
$y
[1] 4.000000 2.033199 8.003223
41
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)(identify .3.2ﺗﺎﺑﻊ
ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﺗﺎﺑﻊ ﻣﯽ ﺗﻮان ﺗﺮﺗﯿﺐ ﻫﺮ ﻧﻘﻄﻪ از ﻧﻤﻮدار را ﺑﺎ ﮐﻠﯿﮏ ﻣﻮس روي آن ﻧﻘﻄﻪ ﻧﻤﺎﯾﺶ داد.
ﻣﺜﺎل :
ﺑﺮاي ﺗﻐﯿﯿﺮ ﭘﺎراﻣﺘﺮﻫﺎي ﺗﻮاﺑﻊ از ﺗﺎﺑﻊ )( parاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .در ﺻﻮرت ﺑﮑﺎر ﮔﯿﺮي اﯾﻦ ﺗﺎﺑﻊ ﺑﺪون آرﮔﻮﻣﺎن ﻟﯿﺴﺘﯽ از
ﭘﺎراﻣﺘﺮﻫﺎي ﻗﺎﺑﻞ ﺗﻐﯿﯿﺮ ﺗﻮاﺑﻊ ﺗﺮﺳﯿﻢ ﺑﻪ ﻧﻤﺎﯾﺶ در ﺧﻮاﻫﺪ آﻣﺪ .از ﺗﺎﺑﻊ )( parﻗﺒﻞ از رﺳﻢ ﻧﻤﻮدار اﺳـﺘﻔﺎده ﻣـﯽ ﺷـﻮد.
ﺑﺮاي ﮐﺴﺐ اﻃﻼﻋﺎت دﻗﯿﻖ در ﻣﻮرد اﯾﻦ ﺗﺎﺑﻊ ﻣﯽ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر )( ?parاز ﻓﺎﯾﻞ helpﮐﻤﮏ ﮔﺮﻓﺖ.
42
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.1آزﻣﻮن t'student
آزﻣﻮن t'studentﺑﺮاي اﻧﺠﺎم آزﻣﻮن در ﻣﻮرد ﻣﯿﺎﻧﮕﯿﻦ ﯾﮏ ﯾﺎ دو ﺟﺎﻣﻌﻪ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣـﯽ ﮔﯿـﺮد .ﺑـﺮاي اﻧﺠـﺎم
آزﻣﻮن tاز ﺗﺎﺑﻊ )( t.testاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
)t.test(x,y,alternative,mu,paired,var.equal,conf.level
در ﺳﺎﺧﺘﺎر ﻓﻮق ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﯾﮏ ﻧﻤﻮﻧﻪ اي ﻓﻘﻂ ﯾﮏ ﺑﺮدار ﻋﺪدي در ﻗﺴﻤﺖ xﺑﻪ ﻋﻨﻮان ﺑﺮدار ﻣﺸﺎﻫﺪات وارد
ﻣﯽ ﮐﻨﯿﻢ و ﺑﺮاي اﻧﺠﺎم آزﻣﻮن دو ﻧﻤﻮﻧﻪ اي ﻋﻼوه ﺑﺮ ﺑﺮدار xﯾﮏ ﺑﺮدار ﻋـﺪدي ﻧﯿـﺰ در ﻗـﺴﻤﺖ yﺑـﻪ ﻋﻨـﻮان ﺑـﺮدار
ﻣــﺸﺎﻫﺪات دوم وارد ﻣــﯽ ﮐﻨــﯿﻢ .در ﻗــﺴﻤﺖ altervativeﻓــﺮض ﻣﻘﺎﺑــﻞ را ﺑــﻪ ﺻــﻮرت " ، " graeter
" ، " lessو ﯾﺎ " " two.sidedﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﯾﮏ ﻃﺮﻓﻪ ﯾﺎ دو ﻃﺮﻓﻪ ﺑﻪ ﺻﻮرت دﻟﺨﻮاه وارد ﻣﯽ ﮐﻨـﯿﻢ .در
ﻗﺴﻤﺖ muﻣﻘﺪار ﻣﯿﺎﻧﮕﯿﻦ ﺗﺤﺖ ﻓﺮض ﺻﻔﺮ را وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ pairedاﮔﺮ ﻣﻘﺪار TRUEرا وارد ﮐﻨﯿﻢ
آزﻣﻮن ﺑﻪ ﺻﻮرت ﺟﻔﺘﯽ اﻧﺠﺎم ﻣﯽ ﺷﻮد ﮐﻪ در اﯾﻦ ﺣﺎﻟﺖ ﺑﺎﯾﺪ اﻧﺪازه دو ﺑﺮدار وارد ﺷﺪه ﯾﮑﺴﺎن ﺑﺎﺷﺪ .در ﺻﻮرﺗﯽ ﮐﻪ
ﻣﻘﺪار pairedرا FALSEوارد ﮐﻨﯿﻢ آزﻣﻮن ﺑﻪ ﺻﻮرت ﺟﻔﺘﯽ اﻧﺠﺎم ﻧﻤﯽ ﺷـﻮد .در ﻗـﺴﻤﺖ var.equalاﮔـﺮ
ﻣﻘﺪار TRUEرا وارد ﮐﻨﯿﻢ آزﻣﻮن ﺑﺎ ﺷﺮط ﺑﺮاﺑﺮي وارﯾﺎﻧﺲ ﻫﺎ اﻧﺠﺎم ﻣﯽ ﺷﻮد و اﮔﺮ ﻣﻘﺪار FALSEرا وارد ﮐﻨـﯿﻢ
آزﻣﻮن ﺑﺎ ﺷﺮط ﻧﺎ ﺑﺮاﺑﺮي وارﯾﺎﻧﺲ ﻫﺎ اﻧﺠﺎم ﻣﯽ ﺷﻮد .در ﻗﺴﻤﺖ conf.levelﻧﯿﺰ ﺑﺎﯾﺪ ﺳﻄﺢ اﻃﻤﯿﻨﺎن ﻣﻮرد ﻧﻈﺮ را
وارد ﮐﻨﯿﻢ .در ﺳﺎﺧﺘﺎر ﺗﺎﺑﻊ ﮔﺰﯾﻨﻪ ﻫﺎ داراي ﻣﻘﺎدﯾﺮ ﭘﯿﺶ ﻓﺮض ﻣﯽ ﺑﺎﺷﻨﺪ .ﻣﻘﺎدﯾﺮ ﭘﯿﺶ ﻓﺮض ﮔﺰﯾﻨﻪ ﻫﺎ ﺑﻪ ﺻﻮرت زﯾﺮ
اﺳﺖ.
data: x
t = -0.7416, df = 9, p-value = 0.4772
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-1.0486421 0.5308475
sample estimates:
mean of x
-0.2588973
43
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
> t.test(x,mu=5,alternatinve="less")
data: x
t = -0.5815, df = 9, p-value = 0.5752
alternative hypothesis: true mean is not equal to 5
95 percent confidence interval:
-9.809701 13.753104
sample estimates:
mean of x
1.971701
data: x and y
t = 0.8449, df = 53, p-value = 0.402
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.3073231 0.7546665
sample estimates:
mean of x mean of y
0.3012040 0.0775323
> t.test(x,y,var.equal=F)
data: x and y
t = 0.855, df = 52.835, p-value = 0.3964
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.3010520 0.7483953
sample estimates:
mean of x mean of y
0.3012040 0.0775323
Paired t-test
data: x and y
t = -1.9335, df = 14, p-value = 0.07365
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.9373174 0.2039841
sample estimates:
mean of the differences
-1.866667
44
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
F آزﻣﻮن.2
ازF ﺑﺮاي اﻧﺠﺎم آزﻣـﻮن. ﺑﺮاي اﻧﺠﺎم آزﻣﻮن در ﻣﻮرد وارﯾﺎﻧﺲ دو ﺟﺎﻣﻌﻪ ﻧﺮﻣﺎل ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮدF آزﻣﻮن
. ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ. اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢvar.test() ﺗﺎﺑﻊ
var.test(x,y,ratio,alternative,conf.level)
ﻧﺴﺒﺖ ﻣﻮرد ﻧﻈﺮ ﺗﺤﺖ ﻓﺮ ض ﺻﻔﺮratio در ﻗﺴﻤﺖ. ﺑﺮدارﻫﺎي ﻣﺸﺎﻫﺪات را وارد ﻣﯽ ﮐﻨﯿﻢy وx در اﯾﻦ ﺗﺎﺑﻊ در
ﻧﯿﺰ ﺑﻪ ﺗﺮﺗﯿﺐ ﻣﻘﺎدﯾﺮ ﻓﺮض ﻣﻘﺎﺑـﻞ و ﺳـﻄﺢconf.level وalternative در ﻗﺴﻤﺖ ﻫﺎي.را وارد ﻣﯽ ﮐﻨﯿﻢ
. ﻣﻘﺪار ﭘﯿﺶ ﻓﺮض ﮔﺰﯾﻨﻪ ﻫﺎي اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ.اﻃﻤﯿﻨﺎن ﻣﻮرد ﻧﻈﺮ را وارد ﻣﯽ ﮐﻨﯿﻢ
:ﻣﺜﺎل
data: x and y
F = 0.0237, num df = 29, denom df = 29, p-value < 2.2e-16
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.01128097 0.04979629
sample estimates:
ratio of variances
0.02370128
> var.test(x,y,ratio=0.02)
data: x and y
F = 1.1851, num df = 29, denom df = 29, p-value = 0.6505
alternative hypothesis: true ratio of variances is not equal to 0.02
95 percent confidence interval:
0.01128097 0.04979629
sample estimates:
ratio of variances
0.02370128
45
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
آزﻣﻮن دو ﺟﻤﻠﻪ اي ﺑﺮاي اﻧﺠﺎم آزﻣﻮن در ﻣﻮرد ﻧﺴﺒﺖ ﻣﻮﻓﻘﯿﺖ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .ﺑـﺮاي اﻧﺠـﺎم آزﻣـﻮن دو
ﺟﻤﻠﻪ اي از ﺗﺎﺑﻊ )( binom.testاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
)binom.test(x,n,p,alternative,conf.level
در اﯾﻦ ﺗﺎﺑﻊ xﺗﻌﺪاد ﻣﻮﻓﻘﯿـﺖ n ،ﺗﻌـﺪاد آزﻣـﺎﯾﺶ ﻫـﺎ ،و pاﺣﺘﻤـﺎل ﻣﻮﻓﻘﯿـﺖ ﺗﺤـﺖ ﻓـﺮض ﺻـﻔﺮ اﺳـﺖ .ﻣﻘـﺎدﯾﺮ
alternativeو conf.levelﻧﯿﺰ ﺑﻪ ﺗﺮﺗﯿﺐ ﻓﺮض ﻣﻘﺎﺑﻞ و ﺳﻄﺢ اﻃﻤﯿﻨﺎن ﻣﻮرد ﻧﻈـﺮ ﻫـﺴﺘﻨﺪ .ﻣﻘـﺪار ﭘـﯿﺶ
ﻓﺮض ﮔﺰﯾﻨﻪ ﻫﺎي ﻓﻮق ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ.
ﻣﺜﺎل :
)> binom.test(48,90,0.5
.4آزﻣﻮن chi-square
آزﻣﻮن chi-squareﺑﺮاي اﻧﺠﺎم آزﻣﻮن در ﻣﻮرد ﻧﯿﮑﻮﯾﯽ ﺑﺮازش و ﯾﺎ ﺑﺮرﺳﯽ اﺳﺘﻘﻼل در ﺟـﺪاول ﭘﯿـﺸﺎﯾﻨﺪي ﻣـﻮرد
اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .ﺑﺮاي اﻧﺠﺎم آزﻣﻮن chi-squareاز ﺗﺎﺑﻊ )( chisq.testاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠـﯽ
اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
)chisq.test(x,y,correct,p,rescale.p,simulate.p.value,B
در ﺳﺎﺧﺘﺎر ﻓﻮق xﯾﮏ ﺑﺮدار ﯾﺎ ﯾﮏ ﻣﺎﺗﺮﯾﺲ و yﯾﮏ ﺑﺮدار اﺳﺖ .در ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ آزﻣـﻮن ﻧﯿﮑـﻮﯾﯽ ﺑـﺮازش
اﻧﺠﺎم دﻫﯿﻢ ﺗﻨﻬﺎ در ﻗﺴﻤﺖ xﺑﺮدار ﻓﺮاواﻧﯽ ﻫﺎ را وارد ﻣﯽ ﮐﻨﯿﻢ و ﻧﯿﺎزي ﻧﯿﺴﺖ در ﻗﺴﻤﺖ yﭼﯿﺰي وارد ﺷـﻮد .اﮔـﺮ
ﺑﺨﻮاﻫﯿﻢ آزﻣﻮن اﺳﺘﻘﻼل در ﺟﺪاول ﭘﯿﺸﺎﯾﻨﺪي اﻧﺠﺎم دﻫﯿﻢ ﯾﺎ ﺟﺪول را ﺑﻪ ﺻﻮرت ﯾـﮏ ﻣـﺎﺗﺮﯾﺲ در ﻗـﺴﻤﺖ xوارد
46
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﻣﯽ ﮐﻨﯿﻢ و ﯾﺎ ﺑﺮدارﻫﺎي ﺟﻤﻊ ﻫـﺎي ﺣﺎﺷـﯿﻪ اي را در ﻗـﺴﻤﺖ xو yوارد ﻣـﯽ ﮐﻨـﯿﻢ .در ﻗـﺴﻤﺖ correctدر
ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ ﺗﺼﺤﯿﺢ ﭘﯿﻮﺳﺘﮕﯽ اﻧﺠﺎم ﺷﻮد ﻣﻘﺪار ، TRUEو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﻣﻘـﺪار FALSEرا وارد
ﻣﯽ ﮐﻨـﯿﻢ .در ﻗـﺴﻤﺖ pﺑـﺮدار اﺣﺘﻤـﺎل ﻫـﺎ را ﺑـﺮاي اﻧﺠـﺎم آزﻣـﻮن ﻧﯿﮑـﻮﯾﯽ ﺑـﺮازش وارد ﻣـﯽ ﮐﻨـﯿﻢ .در ﻗـﺴﻤﺖ
rescale.pدر ﺻﻮرﺗﯽ ﮐﻪ ﺟﻤﻊ اﺣﺘﻤﺎل ﻫﺎي ﺑﺮدار pﺑﺮاﺑﺮ ﯾﮏ ﻧﺒﺎﺷﺪ ﻣﻘﺪار TRUEرا وارد ﻣﯽ ﮐﻨﯿﻢ ﺗﺎ ﺑﺮدار
از ﻧﻮ ﻣﻘﺪار دﻫﯽ ﺷﻮد ﺑﻪ ﺻﻮرﺗﯽ ﮐﻪ ﺟﻤﻊ اﺣﺘﻤـﺎﻻت ﺑﺮاﺑـﺮ ﯾـﮏ ﺷـﻮد .در ﻗـﺴﻤﺖ simulate.p.valueدر
ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ p-valueاز روش ﻣﻮﻧﺖ-ﮐﺎرﻟﻮ ﺷﺒﯿﻪ ﺳﺎزي ﺷﻮد ﻣﻘﺪار TRUEرا وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗـﺴﻤﺖ
Bﻧﯿﺰ ﺗﻌﺪاد اﺟﺮاﻫﺎي روش ﻣﻮﻧﺖ-ﮐﺎرﻟﻮ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ .ﻣﻘﺪار ﭘﯿﺶ ﻓﺮض ﮔﺰﯾﻨﻪ ﻫﺎي ﻓﻮق ﺑـﻪ ﺻـﻮرت زﯾـﺮ
اﺳﺖ.
data: x
X-squared = 3.4783, df = 5, p-value = 0.6267
data: x
X-squared = 1.7944, df = 2, p-value = 0.4077
47
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.1آزﻣﻮن وﯾﻠﮑﺎﮐﺴﻮن
ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﻧﺎﭘﺎراﻣﺘﺮي در ﻣﻮرد ﻣﯿﺎﻧﻪ ﯾﮏ ﯾﺎ دو ﺟﺎﻣﻌﻪ از آزﻣﻮن ﯾﮏ ﻧﻤﻮﻧﻪ اي ﯾـﺎ دو ﻧﻤﻮﻧـﻪ اي وﯾﻠﮑﺎﮐـﺴﻮن
اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .آزﻣﻮن دو ﻧﻤﻮﻧﻪ اي وﯾﻠﮑﺎﮐﺴﻮن ﺑﻪ ﻧﺎم آزﻣﻮن ﻣﻦ-وﯾﺘﻨﯽ ﻧﯿﺰ ﺷﻨﺎﺧﺘﻪ ﻣﯽ ﺷﻮد .ﺑﺮاي اﻧﺠـﺎم آزﻣـﻮن
وﯾﻠﮑﺎﮐﺴﻮن از ﺗﺎﺑﻊ )( wilcox.testاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
wilcox.test(x,y,alternative,mu,paired,exact,correct,conf.int,
)conf.level
در ﺳﺎﺧﺘﺎر ﻓﻮق در ﻗﺴﻤﺖ xﺑﺮدار ﻣﺸﺎﻫﺪات را وارد ﻣﯽ ﮐﻨﯿﻢ و در ﻗﺴﻤﺖ yدر ﺻﻮرﺗﯽ ﮐـﻪ ﺑﺨـﻮاﻫﯿﻢ آزﻣـﻮن دو
ﻧﻤﻮﻧﻪ اي اﻧﺠﺎم دﻫﯿﻢ ﺑﺮدار ﻣﺸﺎﻫﺪات ﻧﻤﻮﻧﻪ دوم را وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ alternativeﻓﺮض ﻣﻘﺎﺑﻞ را ﺑـﻪ
ﺻﻮرت " ، " less " ، " graeterو ﯾﺎ " " two.sidedﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﯾﮏ ﻃﺮﻓﻪ ﯾﺎ دو ﻃﺮﻓﻪ ﺑﻪ ﺻﻮرت
دﻟﺨﻮاه وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ muﻣﻘﺪار ﻣﯿﺎﻧﻪ را ﺗﺤﺖ ﻓﺮض ﺻﻔﺮ وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ pairedاﮔﺮ ﻣﻘﺪار
TRUEرا وارد ﮐﻨﯿﻢ آزﻣﻮن ﺑﻪ ﺻﻮرت ﺟﻔﺘﯽ اﻧﺠﺎم ﻣﯽ ﺷﻮد ﮐﻪ در اﯾﻦ ﺣﺎﻟﺖ ﺑﺎﯾﺪ اﻧﺪازه دو ﺑﺮدار وارد ﺷﺪه ﯾﮑﺴﺎن
ﺑﺎﺷﺪ .در ﺻﻮرﺗﯽ ﮐﻪ ﻣﻘﺪار pairedرا FALSEوارد ﮐﻨﯿﻢ آزﻣﻮن ﺑﻪ ﺻﻮرت ﺟﻔﺘﯽ اﻧﺠﺎم ﻧﻤﯽ ﺷﻮد .در ﻗـﺴﻤﺖ
exactاﮔﺮ ﻣﻘﺪار TRUEرا وارد ﮐﻨﯿﻢ ﻣﻘﺪار p-valueﺑﻪ ﺻﻮرت دﻗﯿﻖ ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﺷﻮد ،در ﻏﯿﺮ اﯾـﻦ ﺻـﻮرت
p-valueﺑﺎ ﺗﻘﺮﯾﺐ ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮔﺮدد .در ﻗﺴﻤﺖ correctدر ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨـﻮاﻫﯿﻢ ﺗـﺼﺤﯿﺢ ﭘﯿﻮﺳـﺘﮕﯽ اﻧﺠـﺎم
ﺷﻮد ﻣﻘﺪار ، TRUEو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﻣﻘﺪار FALSEرا وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ conf.intدر ﺻﻮرﺗﯽ
ﮐﻪ ﺑﺨﻮاﻫﯿﻢ ﻓﺎﺻﻠﻪ اﻃﻤﯿﻨﺎن ﻣﺤﺎﺳﺒﻪ ﺷﻮد ﻣﻘﺪار TRUEو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﻣﻘﺪار FALSEرا وارد ﻣﯽ ﮐﻨﯿﻢ .در
ﻗﺴﻤﺖ conf.levelﻧﯿﺰ ﺑﺎﯾﺪ ﺳﻄﺢ اﻃﻤﯿﻨﺎن ﻣﻮرد ﻧﻈﺮ را وارد ﮐﻨﯿﻢ .ﻣﻘـﺪار ﭘـﯿﺶ ﻓـﺮض ﮔﺰﯾﻨـﻪ ﻫـﺎي ﻓـﻮق ﺑـﻪ
ﺻﻮرت زﯾﺮ اﺳﺖ.
data: x
V = 71.5, p-value = 0.351
alternative hypothesis: true location is not equal to 0
48
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
)> wilcox.test(x,y,exact=F,paired=T
.2آزﻣﻮن ﮐﻮﻟﻤﻮﮔﺮوف-اﺳﻤﯿﺮوﻧﻮف
ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﻧﺎﭘﺎراﻣﺘﺮي در ﻣﻮرد ﺗﻮزﯾﻊ ﯾﮏ ﯾﺎ دو ﻣﺘﻐﯿﺮ از آزﻣﻮن ﮐﻮﻟﻤﻮﮔﺮوف-اﺳﻤﯿﺮوﻧﻮف اﺳﺘﻔﺎده ﻣﯽ ﺷـﻮد.
ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﮐﻮﻟﻤﻮﮔﺮوف-اﺳﻤﯿﺮوﻧﻮف از ﺗﺎﺑﻊ )( ks.testاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ
زﯾﺮ اﺳﺖ.
)ks.test(x,y,...,alternative,exact
در ﺗﺎﺑﻊ ﻓﻮق در ﻗﺴﻤﺖ xﺑﺮدار ﻣﺸﺎﻫﺪات را وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗـﺴﻤﺖ yدر ﺻـﻮرﺗﯽ ﮐـﻪ ﺑﺨـﻮاﻫﯿﻢ آزﻣـﻮن ﯾـﮏ
ﻧﻤﻮﻧﻪ اي اﻧﺠﺎم دﻫﯿﻢ ﻧﺎم ﺗﻮزﯾﻊ ﭘﯿﻮﺳﺘﻪ ﻣﻮرد ﻧﻈﺮ و در ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ آزﻣﻮن دو ﻧﻤﻮﻧﻪ اي اﻧﺠـﺎم دﻫـﯿﻢ ﺑـﺮدار
ﻣﺸﺎﻫﺪات دوم را وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ ﺑﻌﺪ از yﭘﺎراﻣﺘﺮﻫﺎي ﺗﻮزﯾﻊ وارد ﺷﺪه در ﻗـﺴﻤﺖ yﺑـﺮاي آزﻣـﻮن ﯾـﮏ
ﻧﻤﻮﻧﻪ اي را وارد ﻣﯽ ﮐﻨﯿﻢ .در ﻗﺴﻤﺖ ﻫﺎي alternativeو exactﻧﯿﺰ ﺑﻪ ﺗﺮﺗﯿﺐ ﻓﺮض ﻣﻘﺎﺑـﻞ و اﯾﻨﮑـﻪ آﯾـﺎ
p-valueﺑﻪ ﺻﻮرت دﻗﯿﻖ ﯾﺎ ﺗﻘﺮﯾﺒﯽ ﻣﺤﺎﺳﺒﻪ ﺷﻮد را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ .ﻣﻘﺪار ﭘـﯿﺶ ﻓـﺮض ﮔﺰﯾﻨـﻪ ﻫـﺎي ﻓـﻮق ﺑـﻪ
ﺻﻮرت زﯾﺮ اﺳﺖ.
49
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
data: x
D = 0.1434, p-value = 0.5221
alternative hypothesis: two-sided
.3آزﻣﻮن ﺷﺎﭘﯿﺮو-وﯾﻠﮏ
آزﻣﻮن ﺷﺎﭘﯿﺮو-وﯾﻠﮏ ﺑﺮاي ﺑﺮرﺳﯽ ﻧﺮﻣﺎل ﺑﻮدن ﺗﻮزﯾﻊ ﻣﺸﺎﻫﺪات ﺑﻪ ﺻﻮرت ﻧﺎﭘﺎراﻣﺘﺮي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣـﯽ ﮔﯿـﺮد.
ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﺷﺎﭘﯿﺮو-وﯾﻠﮏ از ﺗﺎﺑﻊ )( shapiro.testاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ
اﺳﺖ.
)shapiro.test(x
ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣﯽ ﺷﻮد ﺗﻨﻬﺎ ﻣﻮردي ﮐﻪ ﺑﺎﯾﺪ در ﺗﺎﺑﻊ وارد ﮐﺮد ﺑﺮدار ﻣﺸﺎﻫﺪات اﺳﺖ.
ﻣﺜﺎل :
data: x
W = 0.9317, p-value = 0.09503
50
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.4آزﻣﻮن ﮐﺮوﺳﮑﺎل-واﻟﯿﺲ
آزﻣﻮن ﮐﺮوﺳﮑﺎل-واﻟﯿﺲ ﺑﺮاي اﻧﺠﺎم ﻣﻘﺎﯾﺴﻪ در ﻣﻮرد ﺑﯿﺶ از دو ﺟﺎﻣﻌﻪ ﺑﻪ ﻋﻨﻮان آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﯾﮏ ﻃﺮﻓﻪ ﻧﺎﭘﺎراﻣﺘﺮي
ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﮐﺮوﺳﮑﺎل-واﻟﯿﺲ از ﺗﺎﺑﻊ )( kruskal.testاﺳﺘﻔﺎده ﻣـﯽ ﺷـﻮد.
ﺳﺎﺧﺘﺎر ﮐﻠﯽ اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺷﮑﻞ زﯾﺮ اﺳﺖ.
)kruskal.test(x,g
در اﯾﻦ ﺗﺎﺑﻊ در ﻗﺴﻤﺖ xﺑﺮدار ﻣﺸﺎﻫﺪات و در ﻗﺴﻤﺖ gﻓﺎﮐﺘﻮر ﻣﺸﺨﺺ ﮐﻨﻨﺪه ﮔﺮوه ﻫﺎ را وارد ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
51
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
رﮔﺮﺳﯿﻮن
ﺑﺮاي اﻧﺠﺎم ﯾﮏ ﺗﺤﻠﯿﻞ رﮔﺮﺳﯿﻮﻧﯽ در Rاﺑﺘﺪا ﺑﺎﯾﺪ ﻣﺪل را ﺗﻌﯿﯿﻦ و ﻣﻌﺮﻓﯽ ﮐﻨﯿﻢ .ﺑﺮاي ﻣﻌﺮﻓﯽ ﻣﺪل ﻫﺎي ﺧﻄﯽ ﺑﻪ ﻃﻮر
ﻣﻌﻤﻮل از ﺗﻮاﺑﻊ )( lmﯾﺎ )( glmاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺗﺎﺑﻊ )( lmداراي ﮐﺎرﺑﺮدﻫﺎي وﺳﯿﻌﯽ ﺑﻮده و ﺑﻪ ﻃـﻮر ﮐﻠـﯽ در
ﺑﺴﯿﺎري از ﺗﺤﻠﯿﻞ ﻫﺎي ﺧﻄﯽ از ﺟﻤﻠﻪ آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﺑﺮاي ﻣﻌﺮﻓﯽ ﻣﺪل ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .ﺑﺮاي ﺗﻌﺮﯾﻒ ﯾﮏ
ﻣﺪل ﺧﻄﯽ در ﺗﺎﺑﻊ )( lmاز ﻋﻼﻣﺖ " ~ " در ﻣﯿﺎن ﻧﺎم ﻣﺘﻐﯿﺮ واﺑـﺴﺘﻪ و ﻣﺘﻐﯿﺮﻫـﺎي ﻣـﺴﺘﻘﻞ اﺳـﺘﻔﺎده ﻣـﯽ ﮐﻨـﯿﻢ .در
ﺻﻮرﺗﯽ ﮐﻪ ﻣﺪل داراي ﻋﺮض از ﻣﺒﺪاء ﺻﻔﺮ ﺑﺎﺷﺪ از " " -1ﺑﺮاي ﻧﺸﺎن دادن اﯾﻦ ﻣﻄﻠﺐ در ﻣﺪل اﺳﺘﻔﺎده ﻣﯽ ﮐﻨـﯿﻢ.
ﻣﺜﻼ ﯾﮏ ﻣﺪل ﺧﻄﯽ ﺳﺎده ﺑﺎ ﻣﺘﻐﯿﺮ ﻣﺴﺘﻘﻞ xو ﻣﺘﻐﯿﺮ واﺑﺴﺘﻪ yو ﻋﺮض از ﻣﺒﺪاء ﺻﻔﺮ را ﺑـﻪ ﺻـﻮرت ) ( y~x -1
ﻧﺸﺎن ﻣﯽ دﻫﯿﻢ .ﭘﺲ از ﻣﻌﺮﻓﯽ ﻣﺪل ﺑﺎ اﺳﺘﻔﺎده از ﺗـﺎﺑﻊ )( lmاز دو ﺗـﺎﺑﻊ )( summaryو )( plotﺑـﺮاي اﻧﺠـﺎم
ﺗﺤﻠﯿﻞ ﻫﺎ و رﺳﻢ ﻧﻤﻮدارﻫﺎي ﻣﺪل اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .اﯾﻦ دو ﺗﺎﺑﻊ زﻣﺎﻧﯽ ﮐﻪ ﺑﺎ ﺗﺎﺑﻊ )( lmﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ
ﺑﺎ اﯾﻦ ﺗﺎﺑﻊ ﺳﺎزش ﯾﺎﻓﺘﻪ و ﺧﺮوﺟﯽ ﺧﻮد را ﺑﺎ آن ﻣﻨﻄﺒﻖ ﻣﯽ ﺳﺎزﻧﺪ .از ﺧﺮوﺟﯽ ﺗـﺎﺑﻊ )( summaryﻣـﯽ ﺗـﻮان در
ﺗـﺎﺑﻊ )(coef ﺗﻮاﺑﻌﯽ ﻧﻈﯿﺮ )( coef() ، residاﺳﺘﻔﺎده ﮐﺮد .ﺗﺎﺑﻊ )( residﺑﺮاي ﻣـﺸﺎﻫﺪه ﺑﺎﻗﯿﻤﺎﻧـﺪه ﻫـﺎ و
ﺑﺮاي ﻣﺸﺎﻫﺪه ﺿﺮاﯾﺐ ﻣﻮرد اﺳـﺘﻔﺎده ﻗـﺮار ﻣـﯽ ﮔﯿﺮﻧـﺪ .ﻫﻤﭽﻨـﯿﻦ از ﺧﺮوﺟـﯽ ﺗـﺎﺑﻊ )( lmﻧﯿـﺰ ﻋـﻼوه ﺑـﺮ ﺗﻮاﺑـﻊ
)(predict )( summaryو )( ، plotﻣﯽ ﺗﻮان در ﺗﻮاﺑﻊ )( predictو )( fittedاﺳﺘﻔﺎده ﮐﺮد .ﺗﺎﺑﻊ
ﺑﺮاي ﻣﺸﺎﻫﺪه ﻣﻘﺎدﯾﺮ ﭘﯿﺶ ﺑﯿﻨﯽ ﺷﺪه و ﺗﺎﺑﻊ )( fittedﺑﺮاي ﻣﺸﺎﻫﺪه ﻣﻘـﺎدﯾﺮ ﺑﺮازاﻧـﺪه ﺷـﺪه ﻣـﻮرد اﺳـﺘﻔﺎده ﻗـﺮار
ﻣﯽ ﮔﯿﺮﻧﺪ .اﻟﺒﺘﻪ ﺑﺪون اﺳﺘﻔﺎده از اﯾﻦ ﺗﻮاﺑﻊ ﻧﯿﺰ ﻣﯽ ﺗﻮان ﻣﻘﺎدﯾﺮ ﻣﻮرد ﻧﻈﺮ را ﺑﺎ ﻓﺮاﺧﻮاﻧﯽ ﺑﻪ ﺻﻮرت اﺟﺰاي ﯾﮏ ﻟﯿﺴﺖ
ﻣﺸﺎﻫﺪه ﮐﺮد.
ﻣﺜﺎل ) ﻣﺪل ﺧﻄﯽ ﺳﺎده ( :
Call:
)lm(formula = y ~ x
Coefficients:
)(Intercept x
6.034 1.968
Call:
)lm(formula = y ~ x
Residuals:
Min 1Q Median 3Q Max
-2.06729 -0.37419 0.04529 0.60234 2.38873
52
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.03444 1.11164 5.428 3.71e-05 ***
x 1.96844 0.03124 63.009 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
53
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
در ﻧﺤﻮه ﻣﻌﺮﻓـﯽR ﺗﻨﻬﺎ ﺗﻔﺎوت اﻧﺠﺎم ﯾﮏ ﺗﺤﻠﯿﻞ رﮔﺮﺳﯿﻮﻧﯽ ﺧﻄﯽ ﺳﺎده و ﯾﮏ ﺗﺤﻠﯿﻞ رﮔﺮﺳﯿﻮﻧﯽ ﺧﻄﯽ ﭼﻨﺪﮔﺎﻧﻪ در
ﮐﺎﻓﯿـﺴﺖ ﻣﺘﻐﯿﺮﻫـﺎي ﻣـﺴﺘﻘﻞ را ﺑـﺎlm() ﺑﺮاي ﻣﻌﺮﻓﯽ ﯾﮏ ﻣﺪل ﺧﻄﯽ ﭼﻨﺪﮔﺎﻧﻪ در ﺗﺎﺑﻊ. اﺳﺖlm() ﻣﺪل در ﺗﺎﺑﻊ
. ﺑﻘﯿﻪ ﻣﻮارد درﺳﺖ ﺷﺒﯿﻪ ﻣﺪل ﺧﻄﯽ ﺳﺎده اﻧﺠﺎم ﻣﯽ ﺷﻮد. " در ﮐﻨﺎر ﻫﻢ وارد ﮐﻨﯿﻢ+ " ﻋﻼﻣﺖ
: ( ﻣﺜﺎل ) ﻣﺪل ﺧﻄﯽ ﭼﻨﺪﮔﺎﻧﻪ
Call:
lm(formula = y ~ x1 + x2 + x3)
Residuals:
Min 1Q Median 3Q Max
-2.226e-13 -1.601e-13 -2.370e-14 5.958e-14 8.123e-13
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.000e+01 6.659e-13 3.004e+13 <2e-16 ***
x1 1.000e+01 7.354e-15 1.360e+15 <2e-16 ***
x2 3.600e+01 2.900e-15 1.241e+16 <2e-16 ***
x3 1.000e+00 5.857e-15 1.707e+14 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
54
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي رﺳﻢ ﻧﻤﻮدار ﺧﻂ رﮔﺮﺳﯿﻮن اﺑﺘﺪا ﻧﻤﻮدار ﭘﺮاﮐﻨﺪﮔﯽ ﻣﺘﻐﯿﺮ ﻣﺴﺘﻘﻞ در ﻣﻘﺎﺑﻞ ﻣﺘﻐﯿﺮ واﺑﺴﺘﻪ را رﺳﻢ ﮐﺮده و ﺳﭙﺲ ﺑﺎ
اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( ablineﺧﻂ رﮔﺮﺳﯿﻮن را روي ﻧﻤﻮدار ﭘﺮاﮐﻨﺪﮔﯽ رﺳﻢ ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
Call:
)lm(formula = y ~ x
Coefficients:
)(Intercept x
4.967 2.007
)> plot(x,y
))> abline(lm(y~x
55
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺗـﺎﺑﻊ )(lm ﺑﺮاي ﺑﺮرﺳﯽ ﺑﺮﻗﺮار ﺑﻮدن ﻓﺮض ﻫﺎي ﻣﺪل ﺑﺎ اﺳﺘﻔﺎده از روش ﻧﻤـﻮداري از ﺗـﺎﺑﻊ )( plotﺑـﻪ ﻫﻤـﺮاه
اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺗﺎﺑﻊ )( plotﭼﻬﺎر ﻧﻤﻮدار رﺳﻢ ﻣﯽ ﮐﻨﺪ و آﻧﻬﺎ را ﯾﮑﯽ ﭘﺲ از دﯾﮕﺮي ﻧﻤﺎﯾﺶ ﻣـﯽ دﻫـﺪ .ﺑـﺮاي
ﺗﺎﺑﻊ )(plot ﻧﻤﺎﯾﺶ ﻫﺮ ﭼﻬﺎر ﻧﻤﻮدار در ﯾﮏ ﺻﻔﺤﻪ از ﺗﺎﺑﻊ )( parﺑﻪ ﺷﮑﻞ )) par(mfrow=c(2,2ﻗﺒﻞ از
اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
))> par(mfrow=c(2,2
))> plot(lm(y~x
56
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.4آزﻣﻮن ﻓﺮض
ﺟﺪوﻟﯽ ﮐﻪ در ﺧﺮوﺟﯽ ﺗﺎﺑﻊ )( summaryﻇﺎﻫﺮ ﻣﯽ ﺷﻮد ﻣﻘﺎدﯾﺮ ﻋﺮض از ﻣﺒـﺪاء و ﺿـﺮاﯾﺐ را ﺑـﺎ ﺻـﻔﺮ ﻣﻘﺎﯾـﺴﻪ
ﻣﯽ ﮐﻨﺪ و آزﻣﻮﻧﯽ ﮐﻪ اﻧﺠﺎم ﻣﯽ دﻫﺪ ﺑﺮرﺳﯽ ﻓﺮض ﺻﻔﺮ ﺑﻮدن اﯾﻦ ﻣﻘﺎدﯾﺮ اﺳﺖ .در ﺻﻮرﺗﯽ ﮐﻪ ﺑﺨـﻮاﻫﯿﻢ ﻋـﺮض از
ﻣﺒﺪاء و ﺿﺮاﯾﺐ را ﺑﺎ ﻣﻘﺎدﯾﺮ ﻣﻮرد ﻧﻈﺮ ﺧﻮد ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﻢ و آزﻣﻮﻧﯽ ﮐﻪ در ﺗﺎﺑﻊ )( summaryاﻧﺠـﺎم ﻣـﯽ ﺷـﻮد ﺑـﺮ
اﺳﺎس ﻣﻘﺎدﯾﺮ ﻣﻮرد ﻧﻈﺮ ﻣﺎ ﺑﺎﺷﺪ ﺑﺎﯾﺪ زﻣﺎﻧﯽ ﮐﻪ ﻣﺪل را در ﺗﺎﺑﻊ )( lmﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﯿﻢ ﻓﺮض ﻣـﻮرد ﻧﻈـﺮ ﺧـﻮد را در
ﻣﺪل اﻋﻤﺎل ﮐﻨﯿﻢ .در ﺗﺎﺑﻊ )( lmﻋﻤﻠﮕﺮﻫﺎي رﯾﺎﺿﯽ ﮐﺎرﺑﺮدﻫﺎي ﻣﺘﻔﺎوﺗﯽ دارﻧﺪ .ﺑﺮاي اﯾﻨﮑﻪ ﻋﻤﻠﮕﺮﻫﺎي رﯾﺎﺿﯽ ﺑﻪ ﮐﺎر
ﺑﺮده ﺷﺪه در ﻣﺪل داراي ﻣﻌﺎﻧﯽ ﻫﻤﯿﺸﮕﯽ ﺧﻮد در ﻣﺤﺎﺳﺒﺎت رﯾﺎﺿﯽ ﺑﺎﺷﻨﺪ از ﺗﺎﺑﻊ )( Iاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ و ﻋﻤﻠﮕﺮﻫﺎ
را ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﮐﺎر ﻣﯽ ﮔﯿﺮﯾﻢ.
ﻣﺜﺎل :ﻣﯽ ﺧﻮاﻫﯿﻢ آزﻣﻮن ﮐﻨﯿﻢ آﯾﺎ ﻋﺮض از ﻣﺒﺪاء ﺑﺮاﺑﺮ 1اﺳﺖ.
Call:
)lm(formula = y ~ x
Coefficients:
)(Intercept x
1.744 2.964
))> summary(lm(I(y-1)~x
Call:
)lm(formula = I(y - 1) ~ x
Residuals:
Min 1Q Median 3Q Max
-1.0105 -0.5707 -0.2755 0.4279 1.5420
Coefficients:
)|Estimate Std. Error t value Pr(>|t
(Intercept) 0.74427 0.72543 1.026 0.324
x 2.96391 0.03616 81.959 *** <2e-16
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
57
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
. اﺳﺖ3 ﺑﺮاﺑﺮx در ﻣﺜﺎل ﻗﺒﻞ ﻣﯽ ﺧﻮاﻫﯿﻢ آزﻣﻮن ﮐﻨﯿﻢ آﯾﺎ ﺿﺮﯾﺐ: ﻣﺜﺎل
> summary(lm(I(y-3*x)~x))
Call:
lm(formula = I(y - 3 * x) ~ x)
Residuals:
Min 1Q Median 3Q Max
-1.0105 -0.5707 -0.2755 0.4279 1.5420
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.74427 0.72543 2.404 0.0318 *
x -0.03609 0.03616 -0.998 0.3365
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> summary(lm(I(y-1-3*x)~x))
Call:
lm(formula = I(y - 1 - 3 * x) ~ x)
Residuals:
Min 1Q Median 3Q Max
-1.0105 -0.5707 -0.2755 0.4279 1.5420
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.74427 0.72543 1.026 0.324
x -0.03609 0.03616 -0.998 0.336
58
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
.5ﻓﺎﺻﻠﻪ اﻃﻤﯿﻨﺎن
ﻣﯽ ﺗﻮان ﺑﺮاي ﻋـﺮض از ﻣﺒـﺪاء و ﺿـﺮاﯾﺐ ﻓﺎﺻـﻠﻪ اﻃﻤﯿﻨـﺎن ﺗـﺸﮑﯿﻞ داد .ﺑـﺮاي ﻣﺤﺎﺳـﺒﻪ ﻓﺎﺻـﻠﻪ اﻃﻤﯿﻨـﺎن از ﺗـﺎﺑﻊ
)( confintاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
)> lm(y~x
Call:
)lm(formula = y ~ x
Coefficients:
)(Intercept x
1.744 2.964
))> confint(lm(y~x
2.5 % 97.5 %
(Intercept) 0.1770625 3.311473
x 2.8857802 3.042033
ﺑﺮاي اﻧﺠﺎم آزﻣﻮن در ﻣﻮرد اﯾﻨﮑﻪ آﯾﺎ دو ﻣﺪل ﺑﺎ ﻫﻢ ﺗﻔﺎوت ﻣﻌﻨﯽ داري دارﻧﺪ ﯾﺎ ﻧﻪ از ﺗﺎﺑﻊ )( anovaﺑﻪ ﻫﻤﺮاه ﺗﺎﺑﻊ
)( lmاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .اﯾﻦ ﺗﺎﺑﻊ ﺑﺮاي ﻣﻘﺎﯾﺴﻪ دو ﻣﺪل ﯾﮏ ﺟﺪول آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﺗﺸﮑﯿﻞ ﻣﯽ دﻫﺪ.
ﻣﺜﺎل :
Model 1: y ~ x1 + x2
Model 2: y ~ x2
Res.Df RSS Df Sum of Sq F )Pr(>F
1 7 3.9
2 *** 8 28532.3 -1 -28528.4 51829 8.329e-15
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
)> m3 <- lm(y~x1
)> anova(m1,m3
Analysis of Variance Table
Model 1: y ~ x1 + x2
Model 2: y ~ x1
Res.Df RSS Df Sum of Sq F )Pr(>F
1 7 3.85
2 8 423.04 -1 *** -419.19 761.56 2.106e-08
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
59
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي اﻧﺠﺎم آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﺑﻪ دو روش ﻣﯽ ﺗﻮان ﻋﻤﻞ ﮐﺮد .روش اول آن اﺳﺖ ﮐﻪ اﺑﺘﺪا ﻣﺪل را ﺑـﺎ اﺳـﺘﻔﺎده از ﺗـﺎﺑﻊ
)( lmﻣﻌﺮﻓﯽ ﮐﺮده و ﺳﭙﺲ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( anovaﺑﻪ آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﺑﭙﺮدازﯾﻢ .روش دﯾﮕﺮ آن اﺳﺖ ﮐﻪ اﺑﺘﺪا
ﻣﺪل را ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( aovﻣﻌﺮﻓﯽ ﮐﺮده و ﺳﭙﺲ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )( summaryﺑﻪ آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﺑﭙﺮدازﯾﻢ.
ﻧﺘﯿﺠﻪ ﺣﺎﺻﻞ از ﻫﺮ دو روش ﯾﮑﺴﺎن ﺧﻮاﻫﺪ ﺑﻮد ،اﻣﺎ ﺷﯿﻮه ﻣﺘﺪاول اﺳﺘﻔﺎده از روش دوم اﺳﺖ .ﻣﻌﺮﻓﯽ ﻣﺪل در ﻫﺮ دو
روش ﺑﻪ ﯾﮏ ﺷﮑﻞ اﻧﺠﺎم ﻣﯽ ﺷﻮد .ﺑﺮاي ﻣﻌﺮﻓﯽ ﻣﺪل در آﻧﺎﻟﯿﺰ وارﯾﺎﻧﺲ ﯾﮏ ﻃﺮﻓﻪ از ﯾﮏ ﺑﺮدار ﭘﺎﺳﺦ و ﯾﮏ ﻓـﺎﮐﺘﻮر
ﺑﺮاي ﻧﺸﺎن دادن ﺗﯿﻤﺎرﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل ) روش اول ( :
Response: resp
)Df Sum Sq Mean Sq F value Pr(>F
fact 4 10.000 2.500 0.1589 0.9559
Residuals 15 236.000 15.733
))> summary(aov(resp~fact
)Df Sum Sq Mean Sq F value Pr(>F
fact 4 10.000 2.500 0.1589 0.9559
Residuals 15 236.000 15.733
ﺑﺮاي ﻣﺸﺎﻫﺪه ﺑﺎﻗﯿﻤﺎﻧﺪه ﻫﺎ و ﻣﻘﺎدﯾﺮ ﺑﺮازاﻧﺪه ﺷﺪه ﻣﻘﺎدﯾﺮ residو fittedرا ﻫﻤﺎﻧﻨﺪ ﯾﮏ ﻟﯿﺴﺖ از ﻣﺪل ﻓﺮاﺧﻮاﻧﯽ
ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
60
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
]]'> mod[['fitted
1 2 3 4 5 6 7 8 9 10 11
12 13
25.25 25.25 25.25 25.25 25.50 25.50 25.50 25.50 25.75 25.75 25.75
25.75 24.75
14 15 16 17 18 19 20
24.75 24.75 24.75 23.75 23.75 23.75 23.75
)> boxplot(resp~fact
61
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي ﺑﺮرﺳﯽ ﻓﺮض ﻫﺎي ﻣﺪل از ﻃﺮﯾﻖ رﺳﻢ ﻧﻤﻮدار از ﺗﺎﺑﻊ )( plotﺑﻪ ﻫﻤـﺮاه )( aovاﺳـﺘﻔﺎده ﻣـﯽ ﮐﻨـﯿﻢ .ﺗـﺎﺑﻊ
)( plotﭼﻬﺎر ﻧﻤﻮدار رﺳﻢ ﻣﯽ ﮐﻨﺪ و آﻧﻬﺎ را ﯾﮑﯽ ﭘﺲ از دﯾﮕﺮي ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ .ﺑﺮاي ﻧﻤﺎﯾﺶ ﻫﺮ ﭼﻬـﺎر ﻧﻤـﻮدار
در ﯾﮏ ﺻﻔﺤﻪ از ﺗﺎﺑﻊ )( parﺑﻪ ﺷﮑﻞ )) par(mfrow=c(2,2ﻗﺒﻞ از ﺗﺎﺑﻊ )( plotاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
))> par(mfrow=c(2,2
))> plot(aov(resp~fact
62
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
آزﻣﻮن ﺗﻮﮐﯽ.3
. اﺳﺘﻔﺎده ﻣﯽ ﺷﻮدTukeyHSD() ﺑﺮاي اﻧﺠﺎم آزﻣﻮن ﺗﻮﮐﯽ و اﻧﺠﺎم ﻣﻘﺎﯾﺴﻪ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ از ﺗﺎﺑﻊ
: ﻣﺜﺎل
> TukeyHSD(aov(resp~fact))
Tukey multiple comparisons of means
95% family-wise confidence level
$fact
diff lwr upr p adj
2-1 0.25 -8.41088 8.91088 0.9999839
3-1 0.50 -8.16088 9.16088 0.9997455
4-1 -0.50 -9.16088 8.16088 0.9997455
5-1 -1.50 -10.16088 7.16088 0.9821931
3-2 0.25 -8.41088 8.91088 0.9999839
4-2 -0.75 -9.41088 7.91088 0.9987412
5-2 -1.75 -10.41088 6.91088 0.9688634
4-3 -1.00 -9.66088 7.66088 0.9961482
5-3 -2.00 -10.66088 6.66088 0.9502519
5-4 -1.00 -9.66088 7.66088 0.9961482
> plot(TukeyHSD(aov(resp~fact)))
63
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي اﺟﺮاي ﯾﮏ ﻃﺮح ﺑﻠﻮك ﻫﺎي ﺗﺼﺎدﻓﯽ ﯾﺎ ﻣﺮﺑﻊ ﻻﺗﯿﻦ و ﯾﺎ ﺣﺘﯽ ﻃﺮح ﻫﺎﯾﯽ ﺑﺎ ﻣﻮﻟﻔﻪ ﻫﺎي ﺑﯿﺸﺘﺮ ﮐﺎﻓﯿﺴﺖ ﺑﻪ ازاي
ﻫﺮ ﻣﻮﻟﻔﻪ ﻓﺎﮐﺘﻮري ﮐﻪ ﻣﻌﺮﻓﯽ ﮐﻨﻨﺪه آن ﻣﻮﻟﻔﻪ ﺑﺎﺷﺪ در ﻣﻌﺮﻓﯽ ﻣﺪل وارد ﮐﻨﯿﻢ .ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﻣﻮﻟﻔﻪ ﻫﺎ ﺑـﻪ ﻣـﺪل از
ﻋﻼﻣﺖ " " +اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل ) ﻃﺮح ﺑﻠﻮك ﻫﺎي ﺗﺼﺎدﻓﯽ ( :
ﺗﻔﺎوت ﻃﺮح ﻫﺎي ﻋﺎﻣﻠﯽ ﺑﺎ ﻃﺮح ﻫﺎي ﻗﺒﻞ ﻧﯿﺰ در ﻧﺤﻮه ﻣﻌﺮﻓﯽ ﻣﺪل اﺳﺖ .ﺑﺮاي اﺟﺮاي ﻃﺮح ﻫﺎي ﻋﺎﻣﻠﯽ ﮐﺎﻓﯿﺴﺖ ﺑﻪ
ازاي ﻫﺮ ﻋﺎﻣﻞ ﻓﺎﮐﺘﻮري را ﺑﺮاي ﻣﻌﺮﻓﯽ آن ﻋﺎﻣﻞ در ﻣﺪل وارد ﮐﻨﯿﻢ .ﺑﺮاي وارد ﮐﺮدن ﻋﺎﻣـﻞ ﻫـﺎ در ﻣـﺪل از ﻋﻼﻣـﺖ
" * " اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
ﻣﺜﺎل ) ﻃﺮح دو ﻋﺎﻣﻠﯽ ( :
64
www.SourceSara.com ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا -آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ
ﺑﺮاي رﺳﻢ ﻧﻤﻮدار اﺛﺮ ﻣﺘﻘﺎﺑﻞ از ﺗﺎﺑﻊ )( interaction.plotاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .در اﯾـﻦ ﺗـﺎﺑﻊ اﺑﺘـﺪا دو ﻓـﺎﮐﺘﻮر
ﻣﻌﺮﻓﯽ ﮐﻨﻨﺪه ﻋﻮاﻣﻞ ،ﺳﭙﺲ ﻣﺘﻐﯿﺮ ﭘﺎﺳﺦ ،و ﭘﺲ از آن ﻧﻮع ﻧﻤﺎﯾﺶ ﻧﻤﻮدار را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل :
)"> interaction.plot(fact2,fact1,resp,type="l
65
www.SourceSara.com آﻣﻮزش ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ- ﺳﺎﯾﺖ ﺳﻮرس ﺳﺮا
ﻣﻨﺎﺑﻊ
66