Удобный способ записи метки переменных в * .csv после импорта данных Stata с помощью гавани - PullRequest
0 голосов
/ 27 июня 2019

Чтобы дать фон, цитата из предыдущего вопроса очень хорошо объясняет:

В R некоторые пакеты (например, haven, WDI) вставляют атрибут label в переменные, который объясняет основное имя переменной.Например, gdppc может иметь метку GDP per capita.Это чрезвычайно полезно, особенно при импорте данных из Stata.

(см .: Удобный способ доступа к метке переменных после импорта данных Stata с помощью гавани )

У меня есть некоторые данные с очень полезными метками (например, attr(*, "label")=), и они, кажется, теряются, когда я пишу в * .csv, например, с помощью write_csv().

Например (воспроизводимый пример ниже - использованиеWDI для загрузки крошечного набора данных):

library(WDI)
cpi  <-  WDI(indicator='FP.CPI.TOTL', country=c('US'), start=2000, end=2019)
str(cpi)

#> 'data.frame':    19 obs. of  4 variables:
#>  $ iso2c      : chr  "US" "US" "US" "US" ...
#>  $ country    : chr  "United States" "United States" "United States" "United States" ...
#>  $ FP.CPI.TOTL: num  NA 112 110 109 109 ...
#>   ..- attr(*, "label")= chr "Consumer price index (2010 = 100)"
#>  $ year       : int  2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 ...

Выше вы можете увидеть метку, ..- attr(*, "label")= chr "Consumer price index (2010 = 100)"

Тогда я, если я напишу в * .csv, метка исчезнетв следующий раз я read_csv():

library(readr)
write_csv(cpi, "cpi.csv")
cpi <- read_csv("cpi.csv")
str(cpi)

#> Classes 'spec_tbl_df', 'tbl_df', 'tbl' and 'data.frame': 19 obs. of  4 variables:
#>  $ iso2c      : chr  "US" "US" "US" "US" ...
#>  $ country    : chr  "United States" "United States" "United States" "United States" ...
#>  $ FP.CPI.TOTL: num  NA 112 110 109 109 ...
#>  $ year       : num  2018 2017 2016 2015 2014 ...
#>  - attr(*, "spec")=
#>   .. cols(
#>   ..   iso2c = col_character(),
#>   ..   country = col_character(),
#>   ..   FP.CPI.TOTL = col_double(),
#>   ..   year = col_double()
#>   .. )

Есть ли удобный способ сохранить мои данные в * .csv?Или мои обходные пути должны включать сохранение в менее прозрачный формат?

Создано в 2019-06-27 пакетом Представить (v0.2.1)

...