使用 googlesheets 包阅读欧洲格式的 csv
Read European formatted csv with googlesheets package
我无法从 google 找到有效导入欧式格式文件的方法(,
逗号代表小数,.
点代表千位 12.300,35
) sheets 通过 library(googlesheets)
包。 R 会自动将逗号读取为分隔符而不是小数点。
下载 sheet(通过 R)时,它会自动选择逗号分隔符。我可以自定义吗?
这是我通过 shared google sheets link 获得的数据。
我的代码:
library(googlesheets)
# Authenticate with your google sheets
sheets <- gs_ls()
# Import
spreadsheet <- gs_title("sample_data")
# Read dataset
sample <- gs_read(spreadsheet, ws = 1)
结果错误:
jaren hbo_procent wo_procent
<int> <dbl> <dbl>
1 2006 66.0 9.00
2 2007 67.0 97.0
3 2008 7.00 104
4 2009 73.0 112
5 2010 75.0 119
6 2011 77.0 128
7 2012 78.0 137
8 2013 76.0 142
9 2014 74.0 148
10 2015 75.0 163
11 2016 75.0 181
12 2017 78.0 195
googlesheets 有一个类似于 readr 的界面,特别是它提供了 locale
参数。您可以在这里阅读更多相关信息:http://readr.tidyverse.org/articles/locales.html
在这种情况下,我们需要指定小数点。
我自己复制了 OP 的 Sheet。我不确定原件是否已正确发布到网络上,这是通过 Sheets v3 API 使世界可读的内容所必需的。这与制作 Sheet "public on the web".
(令人困惑)不同
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
或者,要制作一个 Sheet 让更多人更容易 "just read",您可以执行 文件 > 电子表格设置 并选择,例如,美国作为 Sheet 本身的语言环境。
我无法从 google 找到有效导入欧式格式文件的方法(,
逗号代表小数,.
点代表千位 12.300,35
) sheets 通过 library(googlesheets)
包。 R 会自动将逗号读取为分隔符而不是小数点。
下载 sheet(通过 R)时,它会自动选择逗号分隔符。我可以自定义吗?
这是我通过 shared google sheets link 获得的数据。
我的代码:
library(googlesheets)
# Authenticate with your google sheets
sheets <- gs_ls()
# Import
spreadsheet <- gs_title("sample_data")
# Read dataset
sample <- gs_read(spreadsheet, ws = 1)
结果错误:
jaren hbo_procent wo_procent
<int> <dbl> <dbl>
1 2006 66.0 9.00
2 2007 67.0 97.0
3 2008 7.00 104
4 2009 73.0 112
5 2010 75.0 119
6 2011 77.0 128
7 2012 78.0 137
8 2013 76.0 142
9 2014 74.0 148
10 2015 75.0 163
11 2016 75.0 181
12 2017 78.0 195
googlesheets 有一个类似于 readr 的界面,特别是它提供了 locale
参数。您可以在这里阅读更多相关信息:http://readr.tidyverse.org/articles/locales.html
在这种情况下,我们需要指定小数点。
我自己复制了 OP 的 Sheet。我不确定原件是否已正确发布到网络上,这是通过 Sheets v3 API 使世界可读的内容所必需的。这与制作 Sheet "public on the web".
(令人困惑)不同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
或者,要制作一个 Sheet 让更多人更容易 "just read",您可以执行 文件 > 电子表格设置 并选择,例如,美国作为 Sheet 本身的语言环境。