使用googlesheets包读取欧洲格式的csv

时间:2018-03-07 11:02:28

标签: r csv import r-googlesheets

我无法通过{{1>从谷歌表中找到有效导入格式为欧洲风格的文件(小数点为,逗号,数千.点为12.300,35点)的方法包。 R会自动将逗号读取为分隔符而不是小数符号。

下载工作表(通过R)时,会自动选择逗号分隔符。我可以自定义吗?

这是我的数据shared google sheets link

我的代码:

library(googlesheets)

结果错误:

library(googlesheets)

# Authenticate with your google sheets
sheets <- gs_ls()

# Import
spreadsheet <- gs_title("sample_data")

# Read dataset
sample <- gs_read(spreadsheet, ws = 1)

1 个答案:

答案 0 :(得分:0)

googlesheets有一个像readr这样的接口,具体来说它提供了locale参数。您可以在此处详细了解:http://readr.tidyverse.org/articles/locales.html

在这种情况下,我们需要指定小数点。

我制作了自己的OP's Sheet副本。我不确定原始文件是否已正确发布到网页上,这对于通过Sheets v3 API创建可读的内容是必要的。这(令人困惑)与制作一张“在网上公开”不同。

library(googlesheets)

## I made a copy of OP's original Sheet
spreadsheet <- gs_title("Copy of sample_data")
#> Sheet successfully identified: "Copy of sample_data"

# Read dataset
sample <- gs_read(
  spreadsheet,
  ws = 1,
  locale = readr::locale(decimal_mark = ",")
)
#> Accessing worksheet titled 'Blad1'.
#> Parsed with column specification:
#> cols(
#>   jaren = col_double(),
#>   hbo_procent = col_double(),
#>   wo_procent = col_double()
#> )
sample
#> # A tibble: 12 x 3
#>    jaren hbo_procent wo_procent
#>    <dbl>       <dbl>      <dbl>
#>  1 2006.        6.60       9.00
#>  2 2007.        6.70       9.70
#>  3 2008.        7.00      10.4 
#>  4 2009.        7.30      11.2 
#>  5 2010.        7.50      11.9 
#>  6 2011.        7.70      12.8 
#>  7 2012.        7.80      13.7 
#>  8 2013.        7.60      14.2 
#>  9 2014.        7.40      14.8 
#> 10 2015.        7.50      16.3 
#> 11 2016.        7.50      18.1 
#> 12 2017.        7.80      19.5

或者,要制作一张更容易让更多人“阅读”的工作表,您可以执行文件&gt;电子表格设置并选择,例如,美国作为工作表本身的区域设置。