نام گذاری ابعاد یک ماتریس

کلی بازتاب (0) نظرات (1)   

a=matrix(rnorm(9),3)

dimnames(a)=list(k=c('a','g','u'),w=c('d','t','p'))

a

تشکیل مثلث خیام

کلی بازتاب (0) ارسال نظر   

دستورات زیر مثلث خیام را در یک ماتریس بالامثلثی تا مرتبه دهم می سازد

l=10; k=matrix(NA,l,l);k[1,]=k[,1]=1;for (i in 2: (l-1) ) for (j in 2: (l+1-i) ) k[i,j]=k[i-1,j]+k[i,j-1]

 و هر کدام از دستورات زیر نمایش متفاوتی را ارایه می دهند

k

for(h in 2: (l+1) ) print(k[row(k)+col(k)==h])

print(lapply(2:11,function(x)k[row(k)+col(k)==x]))

نمونه ای بین صفر و یک به حجم ۲۰

کارگاه آشنایی با نرم افزار R بازتاب (0) نظرات (1)   
در پاسخ به سوال مطرح شده اگر بخواهیم ۲۰ عدد تصادفی بین صفر و یک با احتمال انتخاب برابر تولید کنیم دستور زیر که از توزیع یکنواخت تولید عدد تصادفی می کند استفاده می شود:
 
runif(20)

ارتقاء به نسخه جديد

کارگاه آشنایی با نرم افزار R بازتاب (0) نظرات (1)   

وقتی نسخه جدیدی از R عرضه می­شود،

-          ابتدا نسخه قبلی R را uninstall کنید.

-          سپس نسخه جدید را نصب کنید.

-          در شاخه Program Files/R محتویات شاخه library نسخه قبلی در شاخه مشابه نسخه جدید کپی کنید.

-          بالاخره در محیط R دستور زیر را به منظور ارتقای کتابخانه ­های نصب شده در زمان استفاده از نسخه قبلی اجرا کنید:

  update.packages(checkBuilt=T, ask=F, repos='http://cran.um.ac.ir')

 در این صورت تمام کتابخانه ­هایی که در نسخه پیشین نصب کرده بودید، در نسخه جدید نیز موجود و قابل استفاده ­اند. علاوه براین­که داده­ ها و دستورات قبلی نیز قابل دسترسی و استفاده هستند.

عناوین فارسی در نمودارها

کلی بازتاب (0) نظرات (2)   

x=c(14,13,12,22,32,11,15)

y=c(19,29,32,18,16,22,36)

plot(x,y,main='نمونه ای از فارسی نویسی در تیتر نمودار')

curve(x^2,main='نمونه ای دیگر' , xlab='محور افقی' , ylab='محور عمودی')

 

 

رسم توابع چند ضابطه ای

کلی بازتاب (0) ارسال نظر   
در پاسخ به خانم حاجبی در مورد رسم تابع سه ضابطه ای به مثال زیر توجه کنید که همانند رسم تابع دو ضابطه ای است:
 
 
f=function(x)
{
if (x <= 2) return(x^2)
if (x > 2 & x < 10) return(x)
if (x >= 10) return(sin(x))
}

g=Vectorize(f)
curve(g,0,15)
 

درج فرمول های ریاضی در صفحه نمودار

کلی بازتاب (0) نظرات (3)   
در پاسخ به آقای نوربخش،
دستورات زیر پس از رسم یک نمودار، فرمول ریاضی مناسب را در محل مختصات مورد نظر درج می کند
و آخرین دستور سایر کدهای قابل استفاده را برای درج فرمول های دیگر را نشان می دهد.
 
curve(x^2)
text(.4,.4,expression(x^2))

x=c(2,4,3,5,6,5,4)
y=c(4,6,3,2,1,2,1)
plot(x,y)
text(5.1,2.1,expression(f[4]))

curve(x^3/sin(x),1,10,col='red')
text(6.7,10000,expression(frac(x^3,sin(x))),col=5)
 
help(plotmath)
 
 
 
 

کتاب فارسی در مورد R

کلی بازتاب (0) نظرات (2)   

یک کاربر محترم R در مورد منبع فارسی سؤال کرده اند.

متأسفانه کتاب فارسی سراغ ندارم و کتابی را در دست ترجمه دارم که امیدوارم تا تابستان امسال آماده شود. 

چارچوب کتابی تألیفی نیز تهیه کرده ام که ان شاء الله در اولین فرصت تکمیل خواهد شد. 

البته لازم به ذکر است که کتاب محاسبات آماری با کامپیوتر دانشگاه پیام نور در مورد نرم افزار +S و به زبان فارسی است و از آنجا که قرابت این دو نرم افزار بسیار زیاد است (در واقع +S پایه و الگوی R بوده است) می تواند مفید واقع شود.

 

رسم کانتور (Contour) یا تصویر شکل سه بعدی روی صفحه

کلی بازتاب (0) نظرات (2)   

برای رسم کانتور (contour) یا تصویر یک شکل سه بعدی بر روی یک صفحه از دستور زیر استفاده می شود. اولین مثال برای تصویر نمودار زین اسبی است

  ((x=y=seq(-3,3,.1); contour (x,y,outer(x,y,function(x,y) x^2-y^2

 

  ((x=y=seq(-3,3,.1); contour (x,y,outer(x,y,function(x,y) x^2+y^2

 

  (((x=y=seq(-3,3,.1); contour (x,y,outer(x,y,function(x,y) x^2-sin(y

رسم نمودار تابع دو ضابطه ای

کلی بازتاب (0) نظرات (4)   
درپاسخ به سؤال مطرح شده در خصوص رسم تابع دو ضابطه ای دو راه حل وجود دارد:
 
راه اول
('.'=x3=seq(-20,20,.1);y3=c();for(i in x3) y3=c(y3,f3(i));plot(x3,y3,pch
 
راه دوم
k=Vectorize(f3);curve(k,-20,20(

حل تمرینات کاربرگ سوم

کارگاه آشنایی با نرم افزار R بازتاب (0) نظرات (2)   

تمرین اول

mean(replicate(10000,sum(sample(0:1,3,repl=T))==2))

یا

mean(apply(matrix(sample(0:1,3*10000,repl=T),3),2,sum)==2)

تمرین دوم

mean(replicate(10000,abs(diff(runif(2,0,60)))<=10))

تمرین سوم

mprd=function(xx)

{

100 / length (xx) * sum ( abs ( (xx - mean(xx))/xx ) )

}

a=c(12,34,32,43,11,22) 

mprd(a)

تمرین چهارم

h=c(); for (i in 1:10000) {k=0; while(sample(1:6,1)<6) k=k+1; h=c(h,k)}; mean(h)

تنظیم و قراردادن بسته (Package) جدید در R

کلی بازتاب (0) نظرات (2)   
با سلام و در پاسخ به سؤال آقای نوربخش، لینک زیر حاوی فایلی نسبتا مفصل و کامل از نحوه تنظیم، کنترل مقدماتی، شکل قراردادن و ارسال بسته جدید توابع به تیم R است که به آن submit کردن package اطلاق می شود.
http://cran.um.ac.ir/doc/manuals/R-exts.pdf
البته سعی خواهم کرد ان شاء ا... در فرصتی مناسب، خلاصه ای از مراحل انجام کار را حتی المقدور در قالب یک مثال بنویسم.

خواندن نتایج R در Excel

کلی بازتاب (0) نظرات (1)   
در پاسخ به سؤال خانم یا آقای قبایی، اگر می خواهید یک ماتریس تولیدشده توسط R را در Excel فراخوانی کنید، راحت ترین روش، ذخیره کردن ماتریس در قالب csv است که در Excel قابل فراخوانی است:
write.csv(mm,'c:/kk.csv')
ورودی اول تابع: mm ماتریس تولیدشده در R
ورودی دوم:مسیر و نام فایل مقصد

حل کاربرگ شماره یک - ادامه

کارگاه آشنایی با نرم افزار R بازتاب (0) ارسال نظر   

برای تبدیل درجه صفر تا 25 در مقیاس سلسیوس به فارنهایت:

32+9/5*(0:25)

تمرین سوم:

par(mfrow=c(1,2)) 

curve( df(x,5,12), 0, 10)

hist(rf(1000,5,12))

qf(.95,5,1:40)

تمرین هفتم:

integrate( function(x) sin(cos(x)) , 0, 1)

D( D( expression( sin(cos(x)) ) ,'x') ,'x')

تمرین نهم:

for (n in 1:100) print(sum((1:n)^2))

یا

sapply(1:100, function(x)sum((1:x)^2))

تمرین دهم:

k=c(2,3,4,3,4,4,5,4,3,2,6)

(k-mean(k))/sd(k)

حل تمرینات کاربرگ شماره یک - قسمت اول

کارگاه آشنایی با نرم افزار R بازتاب (0) ارسال نظر   
Vapor Rain
15 5
19 7
10 2
90 15
50 10
66 13
Rain=c(5,7,2,15,10,13)
Vapor=c(15,19,10,90,50,66)
table(Rain)                             #    جدول فراوانی
table(Vapor)
mean(Rain)                             #    میانگین
sd(Rain)                                 #    انحراف معیار
median(Rain)                          #    میانه
diff(range(Rain))                      #    دامنه
par(mfrow=c(1,2))
hist(Rain)
hist(Vapor)
plot(Rain,Vapor)
abline(h=51)
plot(Rain,Vapor,col=(Rain>mean(Rain))+1)
a=cbind(Rain,Vapor)
rep(1,nrow(a))%*%a / nrow(a)
apply(a,2,var)
apply(a,2,stem)
boxplot(Rain~Vapor<25)
pie(table(Vapor<25),label=c('humid','dry'))
Converted to use with ITS. Powered by FUMblog