Как остановить read.table от округления чисел с разной степенью точности в R?
Я пытаюсь импортировать текстовый файл, содержащий широты и долготы в R
, которые имеют разную степень точности (т. е. точки после запятой). Когда я пытаюсь использовать read.table
, данные импортируются, но обрезаются на 5 десятичных разрядах. Это можно обойти? Я не нашел ничего в документации, которая работала.
Пример данных из текстового файла:
35.326354762000001 91.761496755
35.512443542 92.356571172
35.319078183999999 92.233513991
35.315654623 91.912230315
35.293864976999998 92.442997238
35.435569418 92.231860894
Благодарю.
3 ответа
read.table
не округляется (если вы не укажете более ~16 цифр после запятой), но на самом деле точность печати ответа можно контролировать с помощью options(digits=[n])
Вы могли бы попробовать options(digits()
, вот так:
options(digits=5)
35.326354762000001
#[1] 35.326
options(digits=20)
35.326354762000001
#[1] 35.326354762000001
Как указал наш @Mark, это просто проблема отображения. В read.table второй столбец обрабатывается как числовой. Вы можете принудительно считать его как символ следующим образом, чтобы отобразить все цифры при печати фрейма данных. Скажем, у вас есть данные в файле test.txt... Следующее сгенерирует желаемый результат
df <- read.table("test.txt", sep=" ",colClasses = c("character", "character"))