Чтобы дать фон, цитата из предыдущего вопроса очень хорошо объясняет:
В 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)