read.fwf在所有数字上反转符号

时间:2017-04-17 00:59:23

标签: r

出于某种莫名其妙的原因,read.fwf正在翻转我正在阅读的表格中所有数字的符号。我的代码是这样的:

person.widths <- c(6, 8, 3, 6, rep(7, 8), 6, 12)
meas <- - read.fwf(file=myfile,
                header=FALSE,
                widths=person.widths,
                colClasses=c(rep("numeric", 14)),
                na.strings='.'
                )

结果数据框如下所示:

head(meas)
V1    V2 V3 V4  V5    V6    V7    V8    V9   V10 V11   V12   V13       V14
1 -1 -3.16 -1 -6 -22 -0.79 -0.71  0.48 -0.70  0.44   0 -0.88  -236 -22227190
2 -2 -4.87 -1 -6 -24 -1.15 -1.23 -0.27 -0.96  0.03   0 -0.76  -592 -22227199
3 -3 -2.59 -1 -6 -21 -0.72 -0.32  1.39 -0.34  1.32   0 -0.90  -592 -22227200
4 -4  0.00  2  0   0  0.00 -1.00  0.00 -1.00  0.00   0  0.00  -206 -22227201
5 -5 -3.87 -1 -6 -23 -0.90 -1.49 -0.65 -1.38 -0.35   0 -0.84  -506 -22227202
6 -6 -5.72  0 -6 -25 -1.52 -1.00  0.00 -1.00  0.00   0  0.00 -5859 -22227204

但原始数据如下所示:

> foo <- readLines(myfile)
> head(foo)
[1] "     1    3.16  1     6     22   0.79   0.71  -0.48   0.70  -0.44   0.00   0.88 236      22227190"
[2] "     2    4.87  1     6     24   1.15   1.23   0.27   0.96  -0.03   0.00   0.76 592      22227199"
[3] "     3    2.59  1     6     21   0.72   0.32  -1.39   0.34  -1.32   0.00   0.90 592      22227200"
[4] "     4    0.00 -2     0      0   0.00   1.00   0.00   1.00   0.00   0.00   0.00 206      22227201"
[5] "     5    3.87  1     6     23   0.90   1.49   0.65   1.38   0.35   0.00   0.84 506      22227202"
[6] "     6    5.72  0     6     25   1.52   1.00   0.00   1.00   0.00   0.00   0.00 5859     22227204"

这对我没有任何意义。在这种情况下,我可以使用一个简单的read.table,它工作正常,但我不知道为什么我使用read.fwf时切换标志。有人有任何想法吗?

1 个答案:

答案 0 :(得分:4)

当然只是一个简单的拼写错误。在行

meas <- - read.fwf(file=myfile,

通过在* (-1)赋值运算符之后和实际函数-之前使该流浪<-闲置,您应用明确的read.fwf()乘法。

我们都去过那里。优秀的编辑可以帮助进行正确的颜色突出显示。