使用googlesheets读取单元格值而不格式化为R.

时间:2015-07-20 15:34:06

标签: r google-sheets google-spreadsheet-api r-googlesheets

希望能够使用googlesheets包将Google表格单元格值读入R,但不应用任何单元格格式(例如逗号分隔符,百分比转换等)。

尝试了gs_read()而未指定范围,该范围使用gs_read_csv(),它将通过exportcsv链接"从Sheets API请求数据"。无法在没有应用格式化的情况下告诉它提供基础单元格值的方法。

同样,尝试了gs_read()并指定了一个使用gs_read_cellfeed()的范围。但无法找到一种方法来表明我想要未格式化的单元格值。

注意:我不是在任何单元格中的公式之后,只是没有应用任何格式的值。

示例: (看起来我不能发布图像图像) 以下是Google表格示例的屏幕截图: https://www.dropbox.com/s/qff05u8nn3do33n/Screenshot%202015-07-26%2008.42.58.png?dl=0 第一列和第三列是数字,未应用格式,第二列应用逗号分隔符数千,第四列应用百分比格式。

使用以下代码阅读此表:

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%"

希望能够读取已应用格式的工作表(ala第2列和第4列),但要读取未格式化的值(ala第1列和第3列)。

1 个答案:

答案 0 :(得分:0)

此时,我认为最好的办法是修复导入的数据:

> 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中的函数进行后处理是一个不错的答案,但看起来percentages"currency" style numbers也是一个悬而未决的问题。

我有opened an issuegooglesheets方式更好地解决这个问题。