2013年1月20日 星期日

R 圖形化使用者介面 : JGR + Deducer

# title: JGR, Duducer 安裝
# updated: 2013.8.27
JGR 是一種以 Java 為基礎的 R 圖形化使用者介面, JGR 表示 Java Gui for R.
三個安裝步驟(for Windows):

步驟1:
安裝 Java JRE 或 Java JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html

步驟2:
安裝  JGR, Deducer, DeducerExtra 套件
install.packages(c("JGR", "Deducer", "DeducerExtra"))

步驟3:
case 1. 執行
library(JGR)
JGR()
如果 JGR 視窗有正常開啟, 此時不用下載  JGR執行檔.

case 2. 如果有錯誤, 請嘗試下載 JGR執行檔
Windows 7 -64bit 下載

Windows XP - 32bit 下載

開啟 JGR 執行畫面如下:

註:開啟後可設定載入與顯示套件:

1. 選取 Packages & Data \ Package Manager \ 將 Deducer(如果已打勾, 則不用更改), DuducerExtras 等四個選項打勾, 按  Refresh . 


2. 更新完畢之 Deducer 功能選項, 已增加 Extras 功能.
# end

2013年1月14日 星期一

輕鬆學會R軟體基礎〈台北場〉102/1/21~1/22

前程學術研究中心將於102年1月21日~1月22日舉辦"輕鬆學會R軟體基礎〈台北場〉", 歡迎有興趣的R使用者報名參加.

課程資訊

課程大綱

2013年1月11日 星期五

shiny package 網路應用

Updated: 2021.8.16

shiny相關套件約86個

1. 簡介

R從 2000年發展出第1個版本, 至今2013年1月已將近13年. 最新版本(2013年1月)為 2.15.2, 早期以統計應用為主, 目前如 RWEPA bolgger 首頁所提及已包括29大類別, 上自天文, 下至地理都可應用. 隨著資訊科技技術的進步, 未來將朝向WEB化的應用與客製化應用服務.

目前執行R軟體專案, 大部份會在個人電腦上執行, 如果希望將結果分享給其他人員, 一般會直接將R程式檔複製給他人. 相反地, 如果可以在WEB上直接應用(例如: 連結至某個網頁, 該網頁提供資料上傳與線上整合服務), 則 R的應用相信更可向上提昇. 目前已有部份套件已達到上述相似功能, 參考 R FAQ - 4. R Web Interfaces, 近期有個 shiny package 提供更方便, 互動式網路應用, 當使用者在網頁上更新資料時, 其結果"立刻"在WEB上呈現出來. shiny 其英文簡介如下: 

Easy web applications in R

Shiny makes it super simple for R users like you to turn analyses into interactive web applications that anyone can use. Let your users choose input parameters using friendly controls like sliders, drop-downs, and text fields. Easily incorporate any number of outputs like plots, tables, and summaries.
No HTML or JavaScript knowledge is necessary. If you have some experience with R, you're just minutes away from combining the statistical power of R with the simplicity of a web page. 

重點在於無需 HTML , JavaScript 等知識即可使用.

2. 使用步驟

1. 下載 shiny 套件, install.packages("shiny")
2. 下載 shiny 套件之後, "C:\Program Files\R\R-2.15.2\library\shiny\examples" 目錄包括 01_hello ... 10_download 等10個內建範例.
3. 載入 shiny 套件 library(shiny)
4. 執行範例 runExample("01_hello")
結果 http://localhost:8100/ , IE瀏覽器執行有問題, 直接將網址複製到 Google Chrome, 結果如下圖所示:


執行 shiny "01_hello" 範例R程式碼:

3. shiny  程式碼

shiny 執行時有二個檔案, 例如: 在"C:\Program Files\R\R-2.15.2\library\shiny\examples\01_hello" 資料夾中有二個檔案, 分別是 "server.R" , "ui.R".


程式說明:
server.R 定義伺服器端執行的執行功能, 經由 shinyServer 函數定義其功能, reactivePlot 執行互動式繪圖功能, 最後經由 hist 指令繪出直方圖, 結果顯示於右側.

ui.R 定義左側使用者輸入介面, sidebarPanel 函數可由使用者調整樣本大小. 其中 sliderInput("obs", "Number of observations:", min = 0, max = 1000, value = 500) 之意義如下:

(儲存樣本數的變數名稱, 標題名稱 , 最小值, 最大值, 預設值).

4. shiny  應用篇

看完上述說明相信大定家很想試一下其功能, 以下範例說明如何例用 curve 函數繪製曲線.
注意: 
1. 直接採用 curve(input$plot.function, input$xlimit.lower, input$xlimit.upper) 會有錯誤.
2. 正確須採用 do.call 函數
do.call("curve",list(expr=parse(text=input$plot.function),
                         from=input$xlimit.lower,
                         to=input$xlimit.upper)) 



執行結果




2013年1月4日 星期五

Windows 環境中建立RMySQL套件

目前CRAN 網站已不再提供RMySQL 套件安裝檔之下載, 因此必須由使用者自行編譯與建立, 本例以Windows XP 32 系統為主, 詳細說明其建立程序
https://github.com/rwepa/DataDemo/blob/master/installRMySQLtutorial.pdf

文章包括以下主題 (23頁)
STEP0. 前言
STEP1. 安裝 MYSQL
STEP2. 安裝 Rtools
STEP3. 建立 Renviron.site
STEP4. 複製「libmySQL.dll」與「libmySQL.lib」
STEP5. 建立 RMySQL 套件
STEP6. R連結至 RMySQL

附錄A 安裝 MYSQL
附錄B 建立 school 資料庫與 stdscore 資料表
附錄C 建立 RMySQL 套件

測試用R程式碼 :

# title: R connect to MySQL
# date: 2012.12.21
# author: Ming-Chang Lee
library(RMySQL)
con <- dbConnect(MySQL(), user="root", password="123456", dbname="school", host="localhost")
dbListTables(con)
dbListFields(con, "stdscore")
data.all <- dbReadTable(con, "stdscore")
class(data.all)
data.all
data.select <- dbGetQuery(con, "select * from stdscore where courseno='MS1038'")
data.select
summary(MySQL(), verbose = TRUE)
summary(con, verbose = TRUE)
summary(data.all, verbose = TRUE)
dbListConnections(MySQL())
dbDisconnect(con)
# end

R程式碼 ... https://github.com/rwepa/DataDemo/blob/master/RconnectMySQL.R

如何下載 R 軟體 - 套件(packages)

方法1:
[步驟1] 連結 R 軟體首頁 http://www.r-project.org/
[步驟2] 選取左側 Download, Packages \ CRAN
[步驟3] 選取適當的 CRAN Mirrors, 例如: Taiwan http://cran.csie.ntu.edu.tw/
[步驟4] 選取左側 Software \ Packages
[步驟5] Currently, the CRAN package repository features 4212 available packages.(2013.1), 9006(2016.8)
Packages - 33個類別 33類別中英文名稱對照


方法2:
以  caret package 為範例, 在R軟體中輸入以下指令, 即可直接安裝 caret package
install.packages("caret")

# 2016.8.20 updated

軟體學習工作坊: R軟體的認識與使用 - 東吳大學 (2012.5.18 )

文章包括以下章節:

  1. Introduction
  2. Installing R and packages
  3. Preparing Data
  4. Graphics
  5. Import/Export Data
  6. Rcmdr package and RStudio
  7. Application - Time series analysis
  8. Application - Data mining

Rtips

Rtips (英文版, 71頁)  Rtips-20120213.pdf
Johnson 整理R常見的FAQ,文章包括以下章節:
資料匯入/匯出
資料框架(data.frame)的使用
矩陣與向量的操作
函數的應用,tapply
畫圖
統計檢定
迴歸分析
套件
網路資源
工作空間(Workspace)
系統設定
查詢問題的技巧
其他設定
Reference:
Johnson, P.E. (2012) Rtips. Revival 2012!,
http://pj.freefaculty.org/R/Rtips.pdf

R 基礎篇 - 國立台北商業技術學院上課教材(238頁, 2011.7.4)

整合下列五大主題:
      1. Basic R
      2. Preparing Data
      3. Graphics
      4. Applied Statistics
      5. Application

檔案:aMarvelousR_Lee(pp238).pdf
頁數:238
大小:9.86MB

原檔名:aMarvelousR_Lee(pp238).R
更新:2023.4.3 更名為 ipas-r-program.R

RStudio - R 的整合式開發環境介面

RStudio - R 的整合式開發環境介面, 其他如: Eclipse, Notepad++ 等亦可作為 R-GUI.
檔案:R09.RStudio.pdf
頁數:14
大小:3.72MB

RStudio - 線上說明
檔案:R09.RStudio.document.pdf
頁數:47
大小:1.24MB

RStudio  目前版本(2013/1/5) 0.97.248... 下載

DBF 檔案匯入至 R

文章說明採用二種方法將 DBF 檔案匯入至 R。

方法1 是將 DBF 轉換為 TXT 再匯入 R.

方法2 是使用 foreign package 直接將 DBF 匯入 R.

R08_DBFtoTXT.pdf

ROCR package - ROC curve

ROC (Receiver Operating Characteristics) curve 可用於分類效益評估,包括基本概念介紹。

 1. Introduction
 2. Create an ROC curve
 3. Area Under an ROC Curve (AUC)
 4. R-package “ROCR” demo
 5. References

檔案:roc_introduction.pdf
頁數:16
大小:小於1MB

ROC package 使用說明,範例包括200筆資料。
檔案:roc_r_example.pdf
頁數:4
大小:小於1MB

# end

# 2020.3.23 中英文對照,Kappa統計量更新:

# 分類預測模型評估-混淆矩陣 (Confusion matrix) -----
# 混淆矩陣可用於監督式分類模型評估

#          | 真實P類別 真實N類別
# *******************************
# 預測P類別 | TP真陽數  FP假陽數
# 預測N類別 | FN假陰數  TN真陰數 
# *******************************
#           | P       N

# 1.TPR(True positive rate) 真陽性率, 愈大愈好 -----
# =TP/(TP+FN)
# =TP/P 
# =Sensitivity 靈敏度
# =Recall 召回率
# =Probability of detection
# =Power
# 實際為陽性的樣本中,判斷為陽性的比例。
# 例如真正有生病的人中,被醫院判斷為有生病者的比例。

# 2.FPR(False positive rate) 假陽性率, 愈小愈好 -----
# =FP/(FP+TN)
# =FP/N
# =Fall-out
# =Probability of false alarm
# =Type I error 型一誤差(α)
# =1 - Specificity

# 3.FNR(False negative rate) 假陰性率 -----
# =FN/(TP+FN)
# =FN/P
# =Miss rate
# =Type II error 型二誤差(β)
# =1 - Sensitivity

# 4.TNR(True negative rate) 真陰性率 -----
# =TN/(FP+TN)
# =TN/N
# =Specificity 特異度
# =Selectivity
# 實際為陰性的樣本中,判斷為陰性的比例。
# 例如真正未生病的人中,被醫院判斷為未生病者的比例。

# Precision 精確度 -----
# =TP/(TP+FP)

# Accuracy 正確率(準確率) -----
# =(TP+TN)/(TP+FN+FP+TN)
# =(TP+TN)/(P+N)

# 混淆矩陣計算須有真實資料(實際資料),預測資料(分類器)

# 使用 caret 套件計算混淆矩陣, Kappa統計量

library(caret)

lvs <- c("normal", "abnormal")

truth <- factor(rep(lvs, times = c(86, 258)), 
                levels = rev(lvs))

pred <- factor(c(rep(lvs, times = c(54, 32)),
                 rep(lvs, times = c(27, 231))),
               levels = rev(lvs))

xtab <- table(pred, truth) # table(列, 行)

xtab # class: table

confusionMatrix(xtab)

# Accuracy : 0.8285
(231+54)/sum(xtab)

# Kappa : 0.5336

# Kappa統計量 -----
# https://stats.stackexchange.com/questions/82162/cohens-kappa-in-plain-english

# Kappa統計量是將觀察準確度(機器學習, 本例為行)與期望的準確度(隨機,表示實際值, 本例為列)進行一致性比較的指標, 一般是愈大愈好.

#       Cats Dogs   Total
# Cats  | 10 | 7  | 17
# Dogs  | 5  | 8  | 13
# ***********************
# Total | 15 | 15 | 30

# 行: 觀察的準確度 observed accuracy
(10 + 8) / 30 # 0.6

# 列: 期望的準確度 expected accuracy
(10+5) * 17/30 # for Cats=8.5
(7+8)  * 13/30 # for Dogs=6.5
(8.5 + 6.5)/30 # Expected Accuracy=0.5

# Kappa = (observed accuracy - expected accuracy)/(1 - expected accuracy)
(0.6 - 0.5)/(1-0.5) # kappa=0.2

# kappa Results
# > 0.75     excellent
# 0.60~0.74 good
# 0.4~0.59  fair
# < 0.4      poor

# confusion matrix
# kappa
# caret套件

e1071 package - 支持向量機(Support Vector Machines, SVM)

支持向量機(Support Vector Machines, SVM)基本概念介紹 。
檔案:svm_introduction.pdf
頁數:19
大小:小於1MB

R 的 SVM 使用說明, 範例包括:214筆資料,輸入變數維度為9個 。
檔案:svm-example-R.pdf
頁數:4
大小:小於1MB
說明:
資料集 Glass 已收錄於 mlbench 套件(Machine Learning Benchmark Problems),因此修改R為:
> library(e1071)
> library(mlbench)
> data(Glass)
更新日期:2009/4/17

arules package -北風資料庫操作篇

文章說明將資料轉換至 transactions 格式說明。
檔案:AssociationRules_northwind.pdf
頁數:4
大小:小於1MB

北風資料庫範例檔:
步驟1:建立 c:\temp 目錄 。
步驟2:檔案(northwind_trans.csv)複製至 c:\temp 目錄。
銷售明細: 包括 2153 筆記錄,其中產品名稱 為 item001~item077(銷售77種產品)。
檔案:northwind_trans.csv
大小:小於1MB

北風資料庫範例檔案 - R 程式檔
檔案:AssociationRules_northwind.R

arules package - 提供資料探勘中關聯規則apriori algorithm

檔案:AssociationRules.pdf
頁數:8
大小:小於1MB

關聯規則範例檔案 - R 程式檔 ,記得先下載 arules 套件。
檔案:AssociationRules.R

RODBC package, read.table, read.csv ...

如何將Excel 檔案匯入至R軟體
檔案:R05_ImportExcel.pdf
頁數:6
大小:小於1MB

匯入Excel 檔案 - R 程式檔。
檔案:R05_ImportExcel.txt

匯入範例檔,包括3個檔案:
importdata.csv,importdata.txt,importdata.xls ( Excel 2003)。
檔案:importdata.zip
大小:小於1MB

R 之強大繪圖功能以繪製3D圖形

先安裝 scatterplot3d, misc3d 套件。misc3d  套件可配合滑鼠作360 度旋轉與檢視。
頁數:4
小:小於1MB

Rcmdr package - 圖形化使用介面

採用圖形介面的統計軟體套件 - R Commander - Rcmdr package。
 
檔案:R03_RCommander.pdf
萬筆測試資料,參考投影片 (R03_RCommander.pdf) 29頁 。
檔案:R03_Orders.txt
下載: https://github.com/rwepa/DataDemo/blob/master/R03_Orders.txt

迴歸分析測試資料,參考投影片 (R03_RCommander.pdf) 44頁 。
檔案:R03_Maintain.txt
# end
 

R 基礎篇

提供以下四大主題:

日期: 2006.10.6

1. Introduction 簡介

2. Data Manipulation 資料處理
 2.1 Data Manipulation Introduction
 2.2 Generating Data
  • c( )
  • seq( )
  • scan( )
  • rep( )
  • sequence( )
  • gl( )
  • expand.grid( )
 2.3 Creating Objects
  • list
  • vector
  • factor
  • array
  • matrix
  • data.frame
 2.4 Import/Export Data

3. Descriptive Statistics 敘述統計
 3.1 Operators
 3.2 Mathematical Functions
 3.3 Accessing Data
 3.4 Descriptive Statistics

4. Graphics 繪圖
 4.1 Graphical device
 4.2 Plot
 4.3 Bar charts
 4.4 Pie charts
 4.5 Box-and-whisker plot
 4.6 Stem-and-Leaf plot

R 軟體下載, 安裝與測試說明

[步驟1] 連結 R 軟體首頁 http://www.r-project.org/
[步驟2] 選取左側 Download, Packages \ CRAN
[步驟3] 選取適當的 CRAN Mirrors, 例如: Taiwan http://cran.cs.pu.edu.tw/
[步驟4] 選取上方 Download and Install R 項目中的作業系統,
            例如:Download R for Windows
[步驟5] 選取 Subdirectories 項目中的 base
[步驟6] 點選 Download R x.xx.x for Windows
[步驟7] 儲存並安裝檔案