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 里面有许多更为精细的输入工具, 在其他一些手册中会有具体介绍。