ניתוחים סטטיסטיים וגרפיקה - R

מה זה R ?

אז איך עושים "משהו" ב- R ?

RStudio

Shiny Server

Rscript

התקנה של חבילות

מה זה R ?

R היא שפת תכנות וסביבת עבודה המשמשת בעיקר לניתוחים סטטיסטיים וגרפיקה. כיום נחשבת R סטנדרט ליצירה של תוכנות סטטיסטיות. R היא יישום של שפת התכנות S בשילוב עם סמנטיקה לקסיקלית בהשראת שפת התכנות Scheme. ל-R מבחר מגוון של טכניקות סטטיסטיות, הכולל מודלים לינאריים ולא לינאריים, מבחנים סטטיסטיים, ניתוח אשכולות, ועוד. בתור שפת תכנות ל-R האפשרות לכתוב פונקציות, בידי המשתמש. אחד היתרונות הבולטים של R הוא הגרפיקה, ניתן לייצר את הגרפים הסטנדרטים וגרפים מתואמים אישית, בעזרת הגמישות הרבה של התוכנה.

(חזרה לראש עמוד)

איך עושים "משהו" ב- R ?

ניתן לכתוב פונקציות או פקודות  בשפת R ישירות ב-console

$ R
R version 3.0.2 (2013-09-25) -- "Frisbee Sailing" Copyright (C) 2013 The R Foundation for Statistical Computing Platform: x86_64-unknown-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > x <- c(1,2,3,4,5,6) # Create ordered collection (vector) > y <- x^2 # Square the elements of x > print(y) # print (vector) y [1] 1 4 9 16 25 36 > mean(y) # Calculate average (arithmetic mean) of (vector) y; result is scalar [1] 15.16667 > var(y) # Calculate sample variance [1] 178.9667 > lm_1 <- lm(y ~ x) # Fit a linear regression model "y = f(x)" or "y = B0 + (B1 * x)" # store the results as lm_1 > print(lm_1) # Print the model from the (linear model object) lm_1 Call: lm(formula = y ~ x) Coefficients: (Intercept) x -9.333 7.000 > par(mfrow=c(2, 2)) > plot(lm_1)

למדריך המלא על שפת R יש לגשת ל- http://cran.r-project.org/doc/manuals/r-release/R-lang.html

דוגמאות לתצוגה עם R ניתן למצוא ב: http://www.r-project.org/screenshots/screenshots.html

כל הפונקציות הקיימות בשפה הן מאורגנות תחת "חבילות" packages על מנת לבדוק את רשימת החבילות המעודכנת

> libary()

על מנת לבדוק אם חבילה ספציפית מותקנת בצע:

> libary("package_name")

למשל:

> libary("shiny")

על מנת לבדוק מהגרסא של חבילה ספציפית

> packageVersion("package_name");

למשל:

> packageVersion("shiny");

(חזרה לראש עמוד)

מה זה RStudio ?

היא סביבת פיתוח משולבת לתוכנית סטטיסטיקה R. במערכת ביה"ס מדעי המחשב אפשר להשתמש בה דרך דפדפן. יש לגשת ל https://www.cs.tau.ac.il/rstudio/  (שים לב! הסלש בסוף של הכתובת הכרחי!)

תיעוד מפורט נמצא ב http://rstudio.org/docs/
אתר הבית: http://rstudio.org/

(חזרה לראש עמוד)

מה זה Shiny ?

Shiny חבילת R המספקת במסגרת רבת עוצמה לבניית יישומי אינטרנט ללא צורך בידע  HTML, CSS, JavaScript.

במערכות שלנו מותקן shiny-server המאפשר להריץ shiny applications. השרת בו מותקן השרת הוא rack-pace-01 כרגע עובד עם Port 3838 .

על מנת להריץ את התוכנית שלך:

mkdir ~/ShinyApps
mkdir ~/ShinyApps/log
chmod 757 ~/ShinyApps/log
mkdir ~/ShinyApps/<your_appname>

 copy server.R and ui.R files to  ~/ShinyApps/<your_appname> (and
all other dir/files you need)
 

על מנת להפעיל את האפליקציה בתוך האוניברסיטה:

URL: rack-pace-01:3838/<your_username>/<your_appname>

** שים לב כי כרגע אין לנו  יכולת להבטיח שקבצי לוג הם מובטחים (כל אחד יכול לראות אותם)

תיעוד מפורט נמצא ב http://shiny.rstudio.com/tutorial/

אתר הבית: http://shiny.rstudio.com/

(חזרה לראש עמוד)

Rscript

Rscript מיועדת לשליחת סקריפטים משורת הפקודה. כלומר, כאשר כותבים קובץ פקודות ב - R, ניתן להפעיל את הקובץ מתוך הטרמינל בעזרת Rscript.

לדוגמה, נכתוב את הפקודות הבאות בקובץ hello.txt

print("Hello World!")
print("Hello World!", quote = FALSE)
print(paste("How","are","you?"))

 

כדי להריץ את הסקריפט נחזור לטרמינל - לא בתוך Rstudio!, ונריץ את הקובץ בצורה הבאה:

> Rscript hello.txt

 

נקבל את הפלט הבא או דומה:

[1] "Hello World!"
[1] Hello World!
[1] "How are you?"

להרחבה ותיעוד בנושא Rscript https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/Rscript

 

שימוש בחבילות מתוך Rscript

כאשר החבילות מותקנות, ניתן להוסיף את השורה הבאה בתחילת הסקריפט כדי לאפשר שימוש בהן מתוך הסקריפט:

.libPaths( c("/usr/local/lib/R-local/R", .libPaths()) )

אם הספריות מותקנות ב - path שונה, למשל /vol/scratch/my_dir/Rpackages

.libPaths( c("/vol/scratch/my_dir/Rpackages", .libPaths()) )

אם הספריות מותקנות ב - path שונה, למשל /usr/local/lib/R-local/R-3.6.0

.libPaths( c("/usr/local/lib/R-local/R-3.6.0", .libPaths()) )

(חזרה לראש עמוד)

התקנה של חבילות

ניתן לפנות לצוות הסיסטם על מנת להתקין חבילות נדרשות. ניתן גם להתקין חבילות באופן עצמאי בצורה הבאה:

 

$ R
> options(repos=structure(c(CRAN='http://cran.r-project.org')))
> install.packages('package_name', lib='/specific/scratches/scratch/path/R')
> .libPaths( c("/specific/scratches/scratch/path/R", .libPaths()) )

 

(חזרה לראש עמוד)