我正在尝试使用read.xlsx命令读入英国国家电网系统中的坐标数据集。 这是数据:
NORTHING EASTING TOC ELEVATION WELL ID 1194228.31 2254272.83 117.30 AA-1 1194227.81 2254193.90 114.91 AA-2 1194228.41 2254116.26 114.76 AA-3 1194229.37 2254039.57 112.81 AA-4 1194227.09 2253960.17 112.10 AA-5
这是我的代码:
coordinates <- read.xlsx2("Coordinates.xlsx",sheetName = "Sheet1",
startRow = 1,endRow = 111, colIndex = c(1:4),
colClasses = c("character","character","numeric","character"))
问题是,我的输出如下:
NORTHING EASTING TOC.ELEVATION WELL.ID
1 1194228 2254273 117.30 AA-1
2 1194228 2254194 114.91 AA-2
3 1194228 2254116 114.76 AA-3
4 1194229 2254040 112.81 AA-4
5 1194227 2253960 112.10 AA-5
6 1194227 2253880 110.98 AA-6
该命令将水平和垂直坐标四舍五入,虽然这不是一个大问题,但我希望尽可能准确。这有解决方法吗?我在colClasses
选项的选项中找不到任何内容。
答案 0 :(得分:3)
这是R如何打印数据的问题(通常很方便不来给出浮点数据的完整表示);你实际上并没有失去任何精确度。
使用read.table
而不是read.xlsx
进行说明(我们最终会在同一个地方)。 (如果我用colClasses
指定“字符”读取数据,我会显示所有数字,但如果我想对北方和东方变量做任何合理的事情,我最终会得到一个相当无用的数据框......)
dat <- read.table(header=TRUE,
text="
NORTHING EASTING TOC.ELEVATION WELL.ID
1194228.31 2254272.83 117.30 AA-1
1194227.81 2254193.90 114.91 AA-2
1194228.41 2254116.26 114.76 AA-3
1194229.37 2254039.57 112.81 AA-4
1194227.09 2253960.17 112.10 AA-5")
这是R打印数据帧的方式:
# NORTHING EASTING TOC.ELEVATION WELL.ID
# 1 1194228 2254273 117.30 AA-1
# 2 1194228 2254194 114.91 AA-2
# 3 1194228 2254116 114.76 AA-3
# 4 1194229 2254040 112.81 AA-4
# 5 1194227 2253960 112.10 AA-5
但是仍然可以看到所有精度仍然存在......
print(dat$NORTHING,digits=12)
## [1] 1194228.31 1194227.81 1194228.41 1194229.37 1194227.09
您还可以print(dat,digits=12)
或全局设置options(digits=12)