羅德興老師的教學歷程檔案 - 107-1 資訊科技大數據分析 - 期中考試複習
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    期中考試複習

    資料檔 [下載]

    # R 期中考試複習
    # This is for R mid-term exam by 學號 10614XXXX 姓名:羅老師 L.D.S. on 2018/11/06
    # 範圍
    # 一、請練習 base R Cheat Sheet 中的指令、語法,並觀察結果與紀錄
    # 二、資料集的第一步
    # 三、ch04 數值型的向量物件
    # 四、CH03 基礎數學運算
     
     
    # 一、請練習 base R Cheat Sheet 中的指令、語法,並觀察結果與紀錄
    # 1. getting Help 取得輔助
    ?mean
    help.search('weighted mean')
     
    # 3. Working Directory 工作目錄
    getwd()
    setwd('C:/Temp')
     
    # **********
    # 5. Programming 程式設計
    # 5.1
    for (i in 1:10) {
      j <- i*5
      print(j)
    }
     
    # **********
    # 5.4 Functions
    square <- function(x){
      ss2 <- x*x
      return(ss2)
    }
    for (i in 1:5) {
      j <- i*3
      print(square(j))
    }
     
    # **********
    # 6. Reading and Writing Data 讀寫資料
    # (1)
    df2 <- read.table('file002.txt')
    df2
    write.table(df2,'file009.txt')
     
    # (2)
    df3 <-read.csv('sales-1.csv')
    df3
    colnames(df3)
    # 列出某一欄位數值
    df3$零售店名稱
    df3$產品序號.1
    # Simple Scatter Plots (簡易散佈圖)
    plot(df3$零售店名稱, df3$銷售額, main="學號 10514DXXX 姓名 XXX 零售店銷售額散佈圖")
     
    # Draftsman's or Pairs Scatter Plots (成對散佈圖)
    pairs(df3[1:6], main = "學號 10514DXXX 姓名 XXX 零售店銷售額成對散佈圖", pch = 21, bg = c("red", "green3", "blue")[unclass(df3$零售店名稱)])
     
     
    write.csv(df3,'file006.csv')
     
    # (3)
    # save 函數可以將變數儲存於硬碟中:
     
    x <- c(1.2, 3.4, 5.6)
    y <- x ^ 2
    save(x, y, file = "xy008.RData")
     
    rm(list=ls())
    load('xy008.RData')
     
    # **********
    # 11. Matrixes 矩陣
    # 從 x 產生一個 矩陣
    # byrow 預設為  FALSE, 為循欄填資料
    x <- 1:12
    m <- matrix (x, nrow=3,ncol=4)
    m
     
    # **********
    # 12. Lists 串列
    # list, 可收集不同型態的元素
    l2 <- list(x=1:5, y= c('A','B'))
    l2
    l2[[2]]
    l2[1]
     
    # 2 個物件組成矩陣
    baskets.NBA2016.Lin <-c(7,8,6,11,9,12)
    baskets.NBA2016.Jordon <-c(12,8,9,15,7,12)
    baskets.NBA2016.Team <- rbind(baskets.NBA2016.Lin, baskets.NBA2016.Jordon)
    baskets.NBA2016.Team
     
    # 建立串列- 物件元素不含名稱
    baskets.Cal <- list("加州", "2016-2017", baskets.NBA2016.Team)
    baskets.Cal
     
    # 建立串列- 物件元素含名稱
    baskets.Cal2 <- list(Teamname= "加州", Season= "2016-2017", score.Info= baskets.NBA2016.Team)
     
    # 8-1-3 處理串列內物件元素名稱
    names(baskets.Cal)
    names(baskets.Cal2)
     
    # 命名串列內物件元素名稱
    names(baskets.Cal)[1]= "TName"
     
    # 獲得串列中的物件元素個數
    length(baskets.Cal)
     
    # 獲得串列中的物件元素內容
    # 8*2-1 使用 "$" 取得串列中的的物件元素內容
    baskets.Cal2$Teamname
    baskets.Cal2$Season
    baskets.Cal2$score.Info
    baskets.Cal2$score.Info[2, 4]
    baskets.Cal2$score.Info[1, 5]
     
    # 8*2-2 使用 "[[]]" 取得串列中的的物件元素內容
    baskets.Cal2[[1]]
    baskets.Cal2[[2]]
    baskets.Cal2[[3]]
    baskets.Cal2[[3]][1, 5]
     
    # **********
    # 二、資料集的第一步
     
    # data() 看有哪些資料集
    require (datasets)
    data()
    head(airquality)
    iris
    # 看欄位名稱
    colnames(iris)
    # 列出某一欄位數值
    iris$Petal.Length
    # Simple Scatter Plots (簡易散佈圖)
    plot(iris$Petal.Length, iris$Petal.Width, main="Edgar Anderson's Iris Data")
    # This works by using c(23,24,25) to create a vector, and then selecting elements 1, 2 or 3 from it. How? unclass(iris$Species) turns the list of species from a list of categories (a "factor" data type in R terminology) into a list of ones, twos and threes:
    c(23,24,25)[unclass(iris$Species)]
    # We can do the same trick to generate a list of colours, and use this on our scatter plot:
    plot(iris$Petal.Length, iris$Petal.Width, pch=21, bg=c("red","green3","blue")[unclass(iris$Species)], main="Edgar Anderson's Iris Data")
     
    # Draftsman's or Pairs Scatter Plots (成對散佈圖)
    pairs(iris[1:4], main = "Edgar Anderson's Iris Data", pch = 21, bg = c("red", "green3", "blue")[unclass(iris$Species)])
     
    # 三、ch04 數值型的向量物件
     
    # ch04.R
    # This is R for numeric vector operations by 學號 10614XXXX 姓名:羅老師 L.D.S. on 2018/10/16
    # 4-1  數值型向量物件
    # 1. 建立規則型數值向量物件
    x <- 1:5
    x
    x <- -1:-7
    x
    x <- 1.5:4.7
    x
     
    x <- 1:5
    y <- x+3
    y
    # Ex1. 請試試其他的運算,如: +,-,*,/...
     
    # 2. 向量相加
    x <- 1:5
    y <- x + 6:10
    y
    # Ex2. 請試試不同長度的向量相加
     
    # 3. 建立向量物件函數 seq()
    seq(1, 9, by=2)
    # Ex3. 請試試不加 by 和 by=pi
     
    # 4. 重複向量物件 rep()
    rep(1:3, times= 3, each= 2, length.out= 8)
    # Ex4. 請試試改變 times (重複次數) ,  each (每個元素出現次數) 和 length.out (向量元素個數)
     
    # 5. 連接向量物件函數  c()
    x <- c(1, 3, 7, 9, 11)
    x
     
    X# 建立固定長度的向量物件,向量物件元素預設是 0
    x <- numeric(10)
    x
    # Ex5. 請試試建立 林書豪 Lin 在 2018 年 NBA 賽事的進球數,並列出
     
    # 程式列跨列的處理
    # 該列以 +, -, *, /  做結尾
    x <- 1:5
    y <- x+3
    z <- x +
      + y
    z
     
    # 使用 (  ) 做跨列處理
    x <- rep(1:5, times=2,
             each= 2)
    x
     
    # 使用 "  " 做跨列處理
    coffee <- "台灣古坑的咖啡
    很有名。"
    coffee
    # Ex. 請試試看
     
    # 清除環境內的變數,使用 [掃把] 圖示工具,或以下指令
    rm (list=ls())
    # Ex. 請試試看
     
     
    # 4-2 常見向量的數學運算函數
    # 6. sum(), max(), min(), mean(), 
    # prod(), 計算所有元素的乘積  
    # cumsum(), cumprod(), cummax(), cummin()
    # diff()
    # sort(), rank(), rev()
     
     
    basketball.Lin <- c(7, 8, 6, 11, 9, 12) 
    sum(basketball.Lin)
    # Ex6. 請試試看其他的數學運算函數
    prod(basketball.Lin)
     
    # **********
    # 四、CH03 基礎數學運算
     
    # 3-2-1  四則運算
    x1 = 5 + 6
    x1
    x2 = x1 + 10
    x2
    x3 = x2 - x1
    x3
     
    # 3-2-2  餘數 和 整除
    x = 9 %% 2
    x
    y = 9 %/% 2
    y
     
    # 3-2-3 次方 或 平方根
    x = 3 ** 2
    x
    x = 3 ^ 4
    x
    x = sqrt(64)
    x
     
    # 3-2-4 絕對值
    x = -7
    y = abs(x)
    y
     
    # 3-2-5 exp() 與 對數
    x = exp(1)  # 列出自然數 e 的值
    x
    x2 = exp(2)  # 列出自然數 e 的2 次方
    x2
    x3 = exp(0.5)  # 列出自然數 e 的0.5 次方
    x3
     
    # 對數有兩類型: log (X) 指log e X = ln X,log(X,m) 指 log mX, 或 m=10 時 用 log10(X)
    x=log(2)
    x
    Y= log(2, 10)
    Y
    X= log10(2)
    X
    z = log(2,2)
    z
     
    # 3-2-6 科學符號 e
    x <- 1.28 * 10^4
    x
    y <- 1.28e4
    y
    z  <- 3.65 * 10^-3
    z
    u <- 6e5 / 3e2
    u
     
    # 3-2-7 圓周率 與 三角函數
    pi
    x = sin(1.0)
    x
     
    # 3-2-8 四捨五入函數 round(x,digits=k), digit 可以是負值喔!
    x <- round(98.562, digits = 2)
    x
    x <- round(98.562, digits = 1)
    x
     
    # 3-2-9 近似函數有三種: floor(x), ceiling(x), trunc(x)
    x <- floor (234.56)
    x
    x <- ceiling(234.56)
    x
    x <- trunc (234.56)
    x
     
    # 3-2-10 階乘函數
    x <- factorial(5)
    x
     
    # 3-3  運算優先順序
    x <- (5+6) * 8 - 2
    x
    y <- 5+6 * 8 - 2
    y
     
    # 3-4  無限大 infinity
    x <- 5/0
    x
    y <- 10 -Inf
    y
     
    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應