http://netstat.stat.tku.edu.tw
(User from: 54.162.218.214)
機率  |  統計  |  Data Mining  |  資料處理  |  DEMO  |  Data  |  Links  |  Books  |  相關文件  |   ( ENGLISH )

Home

機率
 計算/查表
 隨機亂數
 Density plots
統計
 基本統計
 卡方檢定
 迴歸分析
 ANOVA
 時間數列
 多變量分析
 品質管制
 無母數方法
Data Mining
 決策樹
 Logistic
 判別分析
 集群分析
 類神經網路
 關聯規則分析
 ALL Methods

R 軟體入門: 2.單一變數的資料輸入

by Steve Chen ( , 版權所有, 歡迎散佈)

Section 2 簡介
在這個 section 中, 我們將學會如何輸入單一變數的資料輸入

2-1 直接鍵入資料

> x <- c(123,345,0.02,2.3,3.3)
> x
[1] 123.00 345.00   0.02   2.30   3.30

> x <- scan()
1: 123
2: 345
3: 0.02
4: 2.3 3.3
6:
Read 5 items
> x
[1] 123.00 345.00   0.02   2.30   3.30
■ 我們可以使用 c 函數來輸入向量的元素, 但也可以使用 scan 函數直接輸入

2-2 從外部資料檔讀入資料

假設我們有以下 4 個資料檔 t1.txt, t2.txt, t3.txt, t4.txt (都放在目前執行 R 的目錄下):

  • t1.txt (只有 1 列 (rows)):

    123 345   0.02   2.3   3.3

  • t2.txt (只有 1 列, 但是以逗點分隔):

    123,345,  0.02,  2.3 , 3.3

  • t3.txt (分成 5 列 (rows)):
    
    123
    345
    0.02
    2.3
    3.3
  • t4.txt (分成 3 列 (rows), 每列的數字個數不同):

    
    123 345 0.02
    2.3
    3.3
    
以下, 我們在 R 中讀入這 4 個不同的檔案 :
> x <- scan("t1.txt")
Read 5 items
> x
[1] 123.00 345.00   0.02   2.30   3.30

> x <- scan("t2.txt",sep=",")
Read 5 items
> x
[1] 123.00 345.00   0.02   2.30   3.30

> x <- scan("t3.txt")
Read 5 items
> x
[1] 123.00 345.00   0.02   2.30   3.30

> x <- scan("t4.txt")
Read 5 items
> x
[1] 123.00 345.00   0.02   2.30   3.30
■ 大家可以發現, 這 4 個檔案讀入的結果都一樣. 其中, t2.txt 檔裡面 的資料是用逗點相隔, 所以我們在 scan 函數中加入 sep="," 的選項 來指明分隔符號是逗點. 如果資料檔中的數字是以 <TAB> 鍵分隔, 則我們 可以使用 x <- scan("example.dat",sep="\t") 來讀入.

■ 以 "逗點" 分隔的資料檔通常稱為 CSV 檔 (Comma Seperated Values).
這種檔案格式在目前算是滿通用的格式, Microsoft Excel 軟體就可以讀入 或輸出 (另存新檔) 這樣的 CSV 檔案.

目前, TKU-Stat 所有的範例資料 都是儲存成 CSV 檔.

在 CSV 格式中, 如果碰到 "內含逗點或空白" 的字串 (string), 慣例上是在字串 前後以雙引號 " 包圍起來. 當然, 你也可以將沒有內含空格或逗點的字串 用雙引號包圍起來. 例如:

"category 1",123,"cat2",345.3
2-2-1 特別的讀取動作:

以下, 我們再用 scan 函數中的 skip 與 nlines 選項來作一些特別讀取動作:

> # 在上一段中, t3.txt 檔案共有 5 列 (rows)
> # 跳過前 2 列 不讀
> x <- scan("t3.txt",skip=2)
Read 3 items
> x
[1] 0.02 2.30 3.30
> # 跳過前 1 列 不讀, 並且只讀取 3 列進來
> x <- scan("t3.txt",skip=1,nlines=3)
Read 3 items
> x
[1] 345.00   0.02   2.30