1

希望能够使用 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)。

4

1 回答 1

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

我曾希望使用 from 函数进行后处理readr会是一个不错的答案,但看起来百分比“货币”样式数字在那里也是未解决的问题。

我已经打开了一个问题googlesheets,以一种或另一种方式更好地解决这个问题。

于 2015-07-28T04:45:06.130 回答