R: несоответствие данных между данными Всемирного банка в R и экспортированных в CSV - PullRequest
0 голосов
/ 11 июля 2019

Я выполняю расчеты с данными Всемирного банка.
Для ВВП это большие цифры. Когда я манипулирую данными в R, они отличаются от того, когда я экспортирую их в csv и манипулирую ими там.

Например, в R я вижу ВВП Аргентины в 1960 году как "115573868508".
Экспортируется в CSV, а затем отображается в Excel, он отображается как «11557386850815».
В конце есть просто две цифры.

Глядя на некоторые другие комментарии, я вижу, что R имеет определенные ограничения для больших чисел. Тем не менее, при загрузке данных из Worldbank, я не получил предупреждение.

library(wbstats) # to access World Bank data

new_wb_cache <- wbcache() 
# get all data; next line extracts GDP, which shows the problem

gdp <- wb(country = tc$iso3c, indicator = "NY.GDP.MKTP.KD", startdate = 1960, enddate = 2018)

typeof(gdp$GDP) 
# results in "double"

gdp1960 <- gdp[which(gdp$date == 1960),1:3] 
# We only need this to understand the issue

write.csv(gdp1960, "gdp1960.csv")
# importing this csv into Excel shows the inconsistency.

Я хотел бы понять, как я могу обрабатывать данные Всемирного банка - или большие числа - и какому набору данных доверять (R или csv ???), чтобы я мог выполнять значимые вычисления с данными Всемирного банка.

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

Значение при экспорте - не 11557386850815, как вы указали, а 115573868508.15, то есть две дополнительные цифры точности. В R вы видите 115573868508, а не 115573868508.15, потому что число значащих цифр по умолчанию для печати равно 7. Вы увидите полное значение в R, увеличив количество отображаемых цифр:

options(digits=15)
2 голосов
/ 11 июля 2019

значение для Аргентины 115573868508.15 Вы увидите это в R, если вы измените параметры печати:

options(scipen = 999, digits = 15)

Похоже, в Excel возникли проблемы с десятичным разделителем. Вы также можете проверить значение в CSV-файле с помощью текстового редактора.

...