Ваша проблема заключается в том, что целочисленное значение может обрабатывать только числа до 2 * 10 ^ 9 (т.е. ~ 9 цифр длиной). Идентификационные номера ваших школ состоят из 12 цифр и, следовательно, должны быть числовыми или двойными.
Но это все не имеет значения, так как число будет правильно обрабатываться R.
Мне кажется, у вас проблема с дисплеем этого номера. У вас есть несколько вариантов. Вот некоторые из них:
Отображение чисел в виде строки символов:
x=999999999999
as.character(x)
[1] "999999999999"
Используйте любую из функций форматирования строки, чтобы указать формат. Это все равно преобразует значение для отображения в виде символа, но дает вам гибкость форматирования. Например, используйте формат:
format(x, scientific=FALSE, width=12)
[1] " 999999999999"
Другие функции, выполняющие аналогичное форматирование, включают sprintf, prettyNum и formatC.
В двух словах, не пытайтесь делать преобразование типов. Просто используйте одну из этих функций, если хотите отобразить ваши результаты. Если вы действительно хотите выполнить преобразование типов, то я предлагаю вам преобразовать число в as.character () - причина в том, что я подозреваю, что вы никогда не будете выполнять арифметику с этими числами, поэтому они по сути являются символьными строками.