我的代码是
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我应该如何纠正我的代码,以获得我想要的矩阵?
发布于 2012-11-06 07:04:10
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-06 07:08:04
试试这个:
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()将所需的列转换为整数
https://stackoverflow.com/questions/13241600
复制相似问题