无法正确格式化R中的导入数据

时间:2014-07-11 11:27:40

标签: r import format read.table

我正在尝试将文本文件导入R,这通常我没有遇到任何问题。但这一次,R只导入了一些列的一小部分。

这是存储在纯文本文件中的输入数据(以制表符分隔):

    id_value    NG  treatment_id    treatment   Xcoord  Ycoord
    267  0.14217400000  1a  1   529863.226  5695760.970
    269  0.14218700000  1a  1   529861.792  5695760.404
    270  0.14599500000  1a  1   529862.235  5695758.726
    271  0.15622200000  1a  1   529860.258  5695760.198
    273  0.15795400000  1a  1   529860.679  5695758.050

我使用了命令:

interpr <- read.delim("~/interpr")

得到了这个:

> interpolation
        id.value     NG      treatment_id treatment   Xcoord  Ycoord
    1        267   0.1421740           1a         1 529863.2 5695761
    2        269   0.1421870           1a         1 529861.8 5695760
    3        270   0.1459950           1a         1 529862.2 5695759
    4        271   0.1562220           1a         1 529860.3 5695760
    5        273   0.1579540           1a         1 529860.7 5695758

您可能已经注意到,Xcoord列仅舍入到一个小数位,而Ycoord列则舍入为整数。

我尝试了很多东西。例如,我尝试将列作为文本导入,并使用以下方法将它们转换为数字:

interpr <- read.delim("~/interpr", colClasses = "character")
interpr$X <- as.double(interpr$Xcoord) 

首先它会导入所有数字,但在转换后(也尝试为.numeric)我遇到了同样的问题。我需要3位小数,所以舍入不是我的选择。我还需要将它定义为进一步处理的数字。

有人知道为什么会这样吗?这是我第一次见到这个问题......

1 个答案:

答案 0 :(得分:1)

问题是屏幕上打印的默认位数 - 默认值为7,请参阅?options并查找digits

您可以使用

更改默认值
options(digits=10)