Как остановить 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"))
Другие вопросы по тегам