私のコードは
ff <- tempfile()
cat(file=ff,"11220011003","11220011003",sep="\n");
x <- read.fwf(ff,widths=c(2,2,4,3))
そして、次のようなマトリックスを取得します。
11 22 11 3
11 22 11 3
しかし、私が望む結果は
11 22 0011 003
11 22 0011 003
必要な行列を取得するには、コードをどのように修正すればよいですか?
read.fwf
マトリックスではなく、data.frame を返します。数値ベクトルの data.frame を返しているようです。代わりに文字ベクトルの data.frame が必要な場合は、指定しますcolClasses
( を参照?read.table
)。
x <- read.fwf(ff,widths=c(2,2,4,3), colClasses=rep("character",4))
x
# V1 V2 V3 V4
# 1 11 22 0011 003
# 2 11 22 0011 003
str(x)
# 'data.frame': 2 obs. of 4 variables:
# $ V1: chr "11" "11"
# $ V2: chr "22" "22"
# $ V3: chr "0011" "0011"
# $ V4: chr "003" "003"
これを試して:
ff <- tempfile()
cat(file=ff,"11220011003","11220011003",sep="\n");
x <- read.fwf(ff,widths=c(2,2,4,3), colClasses = "character")
x
# V1 V2 V3 V4
# 1 11 22 0011 003
# 2 11 22 0011 003
次に、使用して目的の列を整数にキャストできますas.integer()