У меня есть таблица базы данных со столбцом, содержащим различные 17-значные числа.Когда я прошу R прочитать раздел или всю эту таблицу в фрейм данных, он дублирует некоторые значения 4 или 5 раз и отбрасывает другие.В результате таблица с, скажем, 17 уникальными значениями в итоге получит 6. Это странно.Это происходит, когда я считываю данные, используя соединение RODBC, или сохраняю их в CSV и загружаю их таким образом.Это определенно проблема R, потому что я изолировал проблему с поддельными данными:
base_num <- "9600000005206"
# Now create a vector of unique numbers in character format
x <- paste0(base_num, seq(5680, 5760, 1))
x
x
[1] "96000000052065680" "96000000052065681" "96000000052065682"
"96000000052065683" "96000000052065684" "96000000052065685"
"96000000052065686"
[8] "96000000052065687" "96000000052065688" "96000000052065689"
"96000000052065690" "96000000052065691" "96000000052065692"
"96000000052065693"
[15] "96000000052065694" "96000000052065695" "96000000052065696"
"96000000052065697" "96000000052065698" "96000000052065699"
"96000000052065700"
# Convert them to numeric
# ta-da! Duplicate values and dropped values
as.numeric(x)
[1] 96000000052065680 96000000052065680 96000000052065680
96000000052065680 96000000052065680 96000000052065680 96000000052065680
[8] 96000000052065680 96000000052065696 96000000052065696
96000000052065696 96000000052065696 96000000052065696 96000000052065696
[15] 96000000052065696 96000000052065696 96000000052065696
96000000052065696 96000000052065696 96000000052065696 96000000052065696
Это то, что происходит, когда я читаю из базы данных или CSV, где я знаю, что столбец содержит уникальные значения.Спасибо.
РЕДАКТИРОВАТЬ:
Спасибо за освещение проблемы и как исправить ее в R. Проблема по-прежнему в том, что R завершает это преобразование при чтении данных.Даже если я укажу свой запрос как:
CAST(longnumber AS VARCHAR(50)) as 'target_column'
R все равно обрабатывает его как слишком длинное целое число.Я должен написать:
CAST(longnumber AS VARCHAR(50)) + 'S' as 'target_column'
, чтобы заставить R читать его как символьное поле, и это все, что мне нужно.Есть идеи?