该函数read.table
有几个参数,大部分都有默认值,所以你不需要指定它们。特别是,有参数sep
,默认情况下是""
。这个参数是识别列数的神奇参数。如果您将代码更改为:
data.txt="
1 2010-10-04 52495 2010-10-04 11.6
2 2010-10-01 53000 2010-10-01 15.3
3 2010-09-30 52916 2010-09-30 14.3
4 2010-09-29 52785 2010-09-29 11.3
5 2010-09-28 53348 2010-09-28 18.2
6 2010-09-27 52885 2010-09-24 11.7
7 2010-09-24 52174 2010-09-23 15.0
8 2010-09-23 51461 2010-09-22 18.6
9 2010-09-22 51286 2010-09-20 17.9
10 2010-09-21 50968
11 2010-09-20 49250 "
# reading the same data with different sep values
d0 <- read.table(header=FALSE, fill=TRUE, text=data.txt)
d1 <- read.table(header=FALSE, fill=TRUE, text=data.txt, sep="")
d2 <- read.table(header=FALSE, fill=TRUE, text=data.txt, sep=",")
d3 <- read.table(header=FALSE, fill=TRUE, text=data.txt, sep=";")
d4 <- read.table(header=FALSE, fill=TRUE, text=data.txt, sep="-")
d5 <- read.table(header=FALSE, fill=TRUE, text=data.txt, sep="0")
d6 <- read.table(header=FALSE, fill=TRUE, text=data.txt, sep=".")
# aggregatting all data frames
d = list(d0=d0, d1=d1, d2=d2, d3=d3, d4=d4, d5=d5, d6=d6)
dims.d = sapply(d, dim) # get the dimension of all dataframes
rownames(dims.d) = c("nrow", "ncol")
print(dims.d)
d0 d1 d2 d3 d4 d5 d6
nrow 11 11 11 11 11 11 11
ncol 5 5 1 1 5 12 2
现在您看到数据的读取方式有所不同。所有 5 列的数据框都完全不同,但前两个(你可以检查)。为什么总是有 11 行?因为行尾用于指示新行的开始。在没有我们明确干预的情况下,始终查看此默认参数以查看正在发生的事情是一个好主意。