โปรแกรม R เป็น Freeware/Open source ที่พัฒนาโดยนักสถิติและผู้ใช้งานโดยตรง
สามารถ downlaod ได้ที่ http://mirrors.psu.ac.th/pub/cran/
ผมขออนุญาตข้ามขั้นตอนการติดตั้งนะครับ
หลังจากติดตั้งและเปิดโปรแกรมมาแล้วหน้าจอก็จะประมาณนี้ครับ
ก่อนที่จะสร้างเมตริกซ์ จะต้องเข้าใจตัวแปรและสัญลักษณ์เหล่านี้ก่อนครับ
ตัวแปรจะต้องเป็นภาษาอังกฤษหรือตัวเลข โดยจะต้องขึ้นต้นด้วยตัวอักษร ไม่มีเว้นวรรค
เช่น Data1, X, x, AX, Ax9 ... โดยที่ควรจะตั้งชื่อตัวแปรให้สื่อความหมายกับข้อมูล
และต้องระมัดระวังเกี่ยวกับชื่อตัวแปรที่คล้ายกัน เนื่องจากตัวเล็กและตัวใหญ่ถือว่าเป็นตัวแปรที่ต่างกัน
เช่น Data1, DATA1, data1, ....
ส่วนของสัญลักษณ์ในเบื้องต้นมีดังนี้
  สัญลักษณ์
 
  | 
  ความหมาย
 
  | 
  ตัวอย่าง
 
  | 
  <- หรือ =
 
  | 
  นำค่าการทำงานของฟังก์ชั่นที่อยู่ทางด้านขวาไปเก็บไว้ในตัวแปรที่ตั้งชื่อไว้ทางด้านซ้าย
 
  | 
  k <- 10 หรือ k = 10 คือเก็บค่า 10 ไว้ใน k
 
  | 
  c()
 
  | 
  นำข้อมูลมาต่อกันเป็นเวคเตอร์ (Concatination operator)
 
  | 
  y = (1,2,5,6) คือการเก็บค่า (1,2,5,6) ใน y
 
  | 
  :
 
  | 
  Sequence operator
 
  | 
  m = 0:99 คือสร้าง 0 ถึง 99 เก็บค่าไว้ใน m
 
  | 
  seq(from a,to b,by c)
 
  | 
  Sequence operator from a to b by c
 
  | 
  p = seq(0,3,0.1) คือ สร้าง 0 ถึง 3 โดยเพิ่มค่าครั้งละ 0.1
 
  | 
  rep(a,times)
 
  | 
  การอ่านข้อมูลซ้ำ
 
  | 
  h = rep(“VT”,3) คือสร้าง “VT” ซ้ำกัน 3 ครั้ง
 
  | 
  sort(a)
 
  | 
  การเรียงลำดับจากน้อยไปหามากของ a
 
  | 
  a = c(0,3,2,1)
 
 
  b = sort(a)
 
 
  result = 0,1,2,3
 
  | 
  rev(sort(a))
 
  | 
  การเรียงลำดับจากมากไปหาน้อยของ a
 
  | 
  t = rev(sort(a))
 
 
  result = 3,2,1,0
 
  | 
  a[i]
 
  | 
  การอ้างอิงสมาชิกตำแหน่งที่ i ของ a
 
  | 
  a[1] = 0, a[2] = 3
 
  | 
  a[i:j]
 
  | 
  การอ้างอิงสมาชิกตำแหน่งที่ i ถึง j ของ a
 
  | 
  a[2:4] = 3,2,1
 
 
  a[3:4] = 2,1
 
  | 
  a[-i]
 
  | 
  การอ้างอิงค่าที่ไม่ใช่ตำแหน่งที่ i ของ a
 
  | 
  a[-3] = 0,3,1
 
  | 
  a[-length(a)]
 
  | 
  การอ้างอิงค่าที่ไม่ใช่ตำแหน่งสุดท้ายของ a
 
  | 
  a[-length(a)] = 0,3,2
 
  | 
ต่อไปก็เป็นฟังก์ชั่นต่าง ๆ ที่ใช้ในการคำนวณเมตริกซ์ 
  สัญลักษณ์
 
  | 
  ความหมาย
 
  | 
  ตัวอย่าง
 
  | 
  +
 
  | 
  การบวก
 
  | 
  g = 1+9 (g=10)
 
  | 
  -
 
  | 
  การลบ
 
  | 
  p = 5-2 (p=3)
 
  | 
  *
 
  | 
  การคูณ
 
  | 
  s = 4*12 (s=48)
 
  | 
  /
 
  | 
  การหาร
 
  | 
  d = 1/9 (d=0.1111111)
 
  | 
  ^
 
  | 
  การยกกำลัง
 
  | 
  z = 2^10 (z=1024)
 
  | 
  sqrt()
 
  | 
  การหารากที่สอง
 
  | 
  n = sqrt(64) (n = 8)
 
  | 
  abs()
 
  | 
  การหาค่าสัมบูรณ์
 
  | 
  e = abs(-21) (e = 21)
 
  | 
  log()
 
  | 
  การหา Natural log
 
  | 
  v = log(2) (v = 0.6931472)
 
  | 
  log10()
 
  | 
  การหา Common log
 
  | 
  f = log10(100) (f =2)
 
  | 
  exp()
 
  | 
  การหาค่า e^x
 
  | 
   u = exp(2) (u = 7.389056)
 
  | 
  %/%
 
  | 
  การหาจำนวนเต็มที่ได้จากการหาร
 
  | 
  r1 = 6%/%4 (r1 = 1)
 
 
  r2 = 19%/%3 (r2 = 6)
 
  | 
  %%
 
  | 
  การหาเศษที่เหลือจากการหาร
 
  | 
  j1 = 109%%2 (j1=1)
 
 
  j2 = 10%%7 (j2 = 3)
 
  | 
  sum(x)
 
  | 
  คำนวณผลรวมของ x
 
  | 
  x = (1,2,3)
 
 
  sum(x) = 6
 
  | 
  mean(x)
 
  | 
  คำนวณค่าเฉลี่ยเลขคณิตของ x
 
  | 
  mean(x) = 2
 
  | 
  median(x)
 
  | 
  คำนวณค่ามัธยฐานของ x
 
  | 
  median(x) = 2
 
  | 
  sd(x)
 
  | 
  คำนวณค่าเบี่ยงเบนมาตรฐานของ x
 
  | 
  sd(x) = 1
 
  | 
  var(x)
 
  | 
  คำนวณค่าความแปรปรวนของ x
 
  | 
  var(x) = 1
 
  | 
เราลองมาคำนวณเวคเตอร์กันก่อนนะครับ ก่อนที่จะไปคำนวณเมตริกซ์
สร้างตัวแปรขึ้นมา 3 ตัว
a1 = (1,2,3)
a2 = (4,5,6)
a3 = (7,8,9)
ให้หาคำตอบ
(1) 5*a1     (2) a1+a2     (3) a2-a3     (4) a3*a1
  	  	  	  สังเกตว่าการคูณ ก็คือ การเอาสมาชิกในตำแหน่งเดียวกัน มาคูณกันเลย
ยังไม่ใช่การคูณตามหลักของเมตริกซ์นะครับ
ให้หาคำตอบ
(1) ผลรวมของ 1,2,3,...,32,33
(2) ค่าเฉลี่ย 2,4,6,...,198,200
หลังจากที่เราสร้างเวคเตอร์ขึ้นมาแล้ว เราก็จะเอาเวคเตอร์เหล่านั้นมารวมกัน เพื่อสร้างเป็นเมตริกซ์
โดยมีสัญลักษณ์ที่ใช้คือ
cbind(x1,x2,x3,...,xn) = การรวมเวคเตอร์ x1,x2,x3,...,xn ทางด้านคอลัมน์
rbind(x1,x2,x3,...,xn) = การรวมเวคเตอร์ x1,x2,x3,...,xn ทางด้านแถว
ตัวอย่างเช่น
p=(1,2,3)
q=(2,4,7)
r=(9,4,0)
นอกจากนี้ยังมีอีกสัญลักษณ์คือ
matrix(data =, nrow =, ncol =, byrow = TRUE/FALSE)
เช่น s1=(1,2,3,4,5,6,7,8,9) สร้างเป็นเมตริกซ์ 3*3
สังเกตว่าถ้าเราไม่ใส่ byrow จะมีค่าเท่ากับ FALSE
สัญลักษณ์ที่เกี่ยวข้องอีกเล็กน้อยครับ
K[i,j] เป็นการอ้างอิงสมาชิกแถวที่ i คอลัมน์ที่ j ของเมตริกซ์ K
dim(K) เป็นการตรวจสอบมิติของเมตริกซ์ K
สังเกตว่า P[5,2] = Error เพราะว่าเมตริกซ์มีมิติ 2*5 แต่เราถามถึงสมาชิกแถวที่ 5 คอลัมน์ที่ 2 ซึ่งไม่มีจริง
สัญลักษณ์ที่ใช้เกี่ยวกับการคำนวณ
  สัญลักษณ์
 
  | 
  ความหมาย
 
  | 
  t()
 
  | 
  Transpose
 
  | 
  det()
 
  | 
  Determinant
 
  | 
  solve()
 
  | 
  Inverse matrix
 
  | 
  A*B
 
  | 
  การคูณของสมาชิกในเมตริกซ์
 
  | 
  A%*%B
 
  | 
  การคูณเมตริกซ์
 
  | 
  colMeans()
 
  | 
  การหาค่าเฉลี่ยเมตริกซ์ของแต่ละคอลัมน์
 
  | 
  rowMeans()
 
  | 
  การหาค่าเฉลี่ยเมตริกซ์ของแต่ละแถว
 
  | 
  colSums()
 
  | 
  การหาค่าผลรวมเมตริกซ์ของแต่ละคอลัมน์
 
  | 
  rowSums()
 
  | 
  การหาค่าผลรวมเมตริกซ์ของแต่ละแถว
 
  | 
ตัวอย่าง
สังเกตว่า A*A ไม่เท่ากับ A%*%A นะครับ ระวังอย่าใช้สัญลักษณ์ผิด
โจทย์กำหนด
(1) x+2y-z = 1
(2) 2x-y+z = 3
(3) -x+2y+3z = 7
หากจะแก้สมการเพื่อหาค่า x,y,z ก็มีได้หลายวิธี โดยวิธีพื้นฐานก็คือนำสมการเหล่านี้มาบวกลบกัน
เพื่อกำจัดตัวแปรออกไปทีละตัว จนได้คำตอบตัวแปรใดตัวแปรหนึ่งแล้วค่อยเอาไปแทนค่าหาตัวแปรที่เหลือ
ในที่นี้เราจะใช้โปรแกรม R คำนวณหาคำตอบให้ โดยคำนวณแบบเมตริกซ์
ก่อนอื่นต้องเปลี่ยนรูปร่างของสมการเหล่านี้ให้เป็นเมตริกซ์ Ax = B ก่อน
โดยดึงสัมประสิทธ์ของแต่ละตัวแปรออกมาเป็นเมตริกซ์ A ส่วนเมตริกซ์ x คือตัวแปร x,y,z
และเมตริกซ์ B คือคำตอบ
หาค่า x โดยคูณ Inverse A ด้านหน้าทั้ง 2 ข้าง
x = (Inverse A)B
จากนั้นแก้สมการโดยใชัสัญลักษณ์คือ
solve(A,B) ก็จะได้ x
หากคิดทีละขั้นตอน กำหนดเมตริกซ์ H คือ Inverse A
x = Inverse(A)%*%B นั่นคือ x = H%*%B
ถ้าใช้ solve(A,B) ก็จะได้ค่า x เท่ากัน
เพราะฉนั้นคำตอบคือ x=1, y=1, z=2
กำหนดเมตริกซ์ A และ B จงหา (A
2 - B
2)
t จงหา  det(C)
จงหา Inverse K
กำหนดให้
(1) a-b+c+d = 8
(2) a+b-c+d = 6
(3) a+b-c-d = 0
(4) a-b-c+d = 4
จงหาค่า c
เพราะฉนั้น c=2