Next: , Previous: The read.table() function, Up: Reading data from files



7.2 scan() 函數

假定有三個資料向量,長度一致並且要求並行讀入。 其中,第一個向量是 字元模式,另外兩個是數值模式,檔是 input.dat。第一步是用 scan() 以列表的形式 讀入這三個向量,如下所示

     > inp <- scan("input.dat", list("",0,0))

第二個參數是一個設定讀入向量模式的虛擬列表結構(dummy list structure)。 返回的結果 inp 是以三個讀入向量作為分量的列表。 為了把資料條目分成三個獨立的向量,可以 使用下面的賦值方式

     > label <- inp[[1]]; x <- inp[[2]]; y <- inp[[3]]

更為便利的是,虛擬列表可以設定命名的變數。這種情況下, 可以用名字直接訪問向量。例如

     > inp <- scan("input.dat", list(id="", x=0, y=0))

如果你想分別訪問這些變數,你要麼可以 提取這些資料框中的分量並且賦給新的變數:

     > label <- inp$id; x <- inp$x; y <- inp$y

要麼把這個列表綁定在搜索路徑的位置 2。 (see Attaching arbitrary lists)

如果第二個參數是一個單一值(虛擬值)而不是列表,那麼一個單一 向量將會被讀入。它的所有元素將會和這個虛擬值的 模式一致。

     > X <- matrix(scan("light.dat", 0), ncol=5, byrow=TRUE)

R 裏面有許多更為精細的輸入工具, 在其他一些手冊中會有具體介紹。