この関数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 つの列を持つすべてのデータ フレームはまったく異なりますが、最初の 2 つ (確認できます)。常に 11 行あるのはなぜですか? 行末は新しい行の始まりを示すために使用されるためです。明示的な介入なしで何が起こっているかを確認するために、常にこの既定のパラメーターを参照することをお勧めします。