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 裏面有許多更為精細的輸入工具, 在其他一些手冊中會有具體介紹。