0

私のコードは

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

必要な行列を取得するには、コードをどのように修正すればよいですか?

4

2 に答える 2

3

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"
于 2012-11-05T23:04:10.153 に答える
2

これを試して:

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()

于 2012-11-05T23:08:04.170 に答える