Чтение значений ячеек без форматирования в R с помощью googlesheets

Хотелось бы иметь возможность считывать значения ячеек Google Sheets в R с помощью пакета googlesheets, но без применения какого-либо форматирования ячеек (например, разделителей запятых, процентного преобразования и т. Д.).

Пробовал gs_read() без указания диапазона, который использует gs_read_csv(), который будет "запрашивать данные из API Sheets через ссылку exportcsv". Не удается найти способ указать значение базовой ячейки без применения форматирования.

Точно так же пробовал gs_read() и указывал диапазон, который использует gs_read_cellfeed(). Но не могу найти способ указать, что я хочу неформатированные значения ячеек.

Примечание: я не после формул в каких-либо ячейках, просто значения без применения форматирования.

Пример:(похоже, я не могу публиковать изображения) Вот снимок экрана примера Google Sheet: https://www.dropbox.com/s/qff05u8nn3do33n/Screenshot%202015-07-26%2008.42.58.png?dl=0 Первый и третий столбцы являются числовыми без форматирования, 2-й столбец применяет разделители запятых для тысяч, 4-й столбец применяет процентное форматирование.

Чтение этого листа со следующим кодом:

library(googlesheets)
gs <- gs_title("GoogleSheets Test")
ws <- gs_read(gs, ws = "Sheet1")

выходы:

> str(ws)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   3 obs. of  4 variables:
 $ Number         : int  123456 123457 123458
 $ Number_wFormat : chr  "123,456" "123,457" "123,458"
 $ Percent        : num  0.123 0.234 0.346
 $ Percent_wFormat: chr  "12.34%" "23.45%" "34.56%"

Хотелось бы иметь возможность читать рабочий лист с примененным форматированием (аля столбцы 2 и 4), но читать неформатированные значения (аля столбцы 1 и 3).

1 ответ

На данный момент, я думаю, что вам лучше всего исправить импортированные данные следующим образом:

> ws$Number_fixed <- type.convert(gsub(',', '', ws$Number_wFormat))
> ws$Percent_fixed <- type.convert(gsub('%', '', ws$Percent_wFormat)) / 100
> str(ws)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   3 obs. of  6 variables:
 $ Number         : int  123456 123457 123458
 $ Number_wFormat : chr  "123,456" "123,457" "123,458"
 $ Percent        : num  0.123 0.234 0.346
 $ Percent_wFormat: chr  "12.34%" "23.45%" "34.56%"
 $ Number_fixed   : int  123456 123457 123458
 $ Percent_fixed  : num  0.123 0.234 0.346

У меня была некоторая надежда, что пост-обработка с функциями из readr было бы неплохим ответом, но похоже, что проценты и числа в "валютном" стиле тоже не решены.

Я открыл вопрос, чтобы решить эту проблему лучше в googlesheets, так или иначе.

Другие вопросы по тегам