我正在尝试将文本文件导入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位小数,所以舍入不是我的选择。我还需要将它定义为进一步处理的数字。
有人知道为什么会这样吗?这是我第一次见到这个问题......
答案 0 :(得分:1)
问题是屏幕上打印的默认位数 - 默认值为7,请参阅?options
并查找digits
。
您可以使用
更改默认值options(digits=10)