【问题标题】:Extract name of Google Sheet with googlesheets package使用 googlesheets 包提取 Google Sheet 的名称
【发布时间】:2016-06-30 06:50:01
【问题描述】:

我正在使用 googlesheets 包从 Google 表格中获取数据,并希望将表格名称作为列附加到 data.frame 中。

例如,使用公共 Gapminder 表:

library(googlesheets)
library(dplyr)
my_dat <- gs_gap() %>% # register public Gapminder practice sheet
  gs_read(ws = 1) %>%
  mutate(source_dat = "Africa")

我的最后一行手动执行此操作,但我想自动执行此操作,即使用工作表名称填充变量 source_dat。 (是的,我知道已经有一个包含该信息的列 - 这只是一个示例)。有没有办法引用活动工作表名称?

【问题讨论】:

    标签: r r-googlesheets


    【解决方案1】:

    目前只有单元格提要读取函数将工作表名称作为属性附加。第二个解决方案展示了如何使用它。如果您在 github 上打开问题,我可以将其添加到所有读取方法中。

    您也可以像第一个解决方案一样提前存储 ws 的名称。

    library(googlesheets)
    library(dplyr)
    
    ws <- "Africa"
    my_dat <- gs_gap() %>% # register public Gapminder practice sheet
      gs_read(ws = ws) %>%
      mutate(source_dat = ws)
    #> Accessing worksheet titled 'Africa'.
    #> No encoding supplied: defaulting to UTF-8.
    my_dat
    #> Source: local data frame [624 x 7]
    #> 
    #>    country continent  year lifeExp      pop gdpPercap source_dat
    #>      (chr)     (chr) (int)   (dbl)    (int)     (dbl)      (chr)
    #> 1  Algeria    Africa  1952  43.077  9279525  2449.008     Africa
    #> 2  Algeria    Africa  1957  45.685 10270856  3013.976     Africa
    #> 3  Algeria    Africa  1962  48.303 11000948  2550.817     Africa
    #> 4  Algeria    Africa  1967  51.407 12760499  3246.992     Africa
    #> 5  Algeria    Africa  1972  54.518 14760787  4182.664     Africa
    #> 6  Algeria    Africa  1977  58.014 17152804  4910.417     Africa
    #> 7  Algeria    Africa  1982  61.368 20033753  5745.160     Africa
    #> 8  Algeria    Africa  1987  65.799 23254956  5681.359     Africa
    #> 9  Algeria    Africa  1992  67.744 26298373  5023.217     Africa
    #> 10 Algeria    Africa  1997  69.152 29072015  4797.295     Africa
    #> ..     ...       ...   ...     ...      ...       ...        ...
    
    ## currently only gs_read_cellfeed stores ws_title as an attribute
    my_dat <- gs_gap() %>% # register public Gapminder practice sheet
      gs_read_cellfeed() %>% 
      {
        ws <- attr(., "ws_title")
        gs_reshape_cellfeed(.) %>% 
        mutate(source_dat = ws)      
      }
    #> Accessing worksheet titled 'Africa'.
    my_dat
    #> Source: local data frame [624 x 7]
    #> 
    #>    country continent  year lifeExp      pop gdpPercap source_dat
    #>      (chr)     (chr) (int)   (dbl)    (int)     (dbl)      (chr)
    #> 1  Algeria    Africa  1952  43.077  9279525  2449.008     Africa
    #> 2  Algeria    Africa  1957  45.685 10270856  3013.976     Africa
    #> 3  Algeria    Africa  1962  48.303 11000948  2550.817     Africa
    #> 4  Algeria    Africa  1967  51.407 12760499  3246.992     Africa
    #> 5  Algeria    Africa  1972  54.518 14760787  4182.664     Africa
    #> 6  Algeria    Africa  1977  58.014 17152804  4910.417     Africa
    #> 7  Algeria    Africa  1982  61.368 20033753  5745.160     Africa
    #> 8  Algeria    Africa  1987  65.799 23254956  5681.359     Africa
    #> 9  Algeria    Africa  1992  67.744 26298373  5023.217     Africa
    #> 10 Algeria    Africa  1997  69.152 29072015  4797.295     Africa
    #> ..     ...       ...   ...     ...      ...       ...        ...
    

    【讨论】:

    • 第二种访问属性的方法很棒,谢谢!我将打开一个 GitHub 问题。
    猜你喜欢
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    相关资源
    最近更新 更多