tsv中数据集的链接
https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/env_ww_genp?format=TSV&compressed=true
我下载了它,提取到tsv文件,用记事本打开它,可以想象数据帧结构,但不知道如何导入它。
您可以下载它并查看 tsv 文件或下面是数据集的一部分
freq,ww_gtd,substance,unit,geo\TIME_PERIOD 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021
A,DIS,BOD,O2_TD,AT : : : : : : : : 15.00 : 15.00 : 12.60 : 12.50 : 13.59 : 12.57 12.90 12.78 16.99
A,DIS,BOD,O2_TD,BE 22.36 e 21.28 e 101.67 e 11.16 e 9.62 e 32.01 e : : : : 34.89 e 31.13 e 34.89 e 32.38 e 27.07 e 30.01 e 31.78 e 26.49 e 28.13 e : : :
A,DIS,BOD,O2_TD,CY : : : : 0.45 0.50 : : : : : : : : : : : : 0.19 : 0.22 :
请帮忙。
我想导入它,获取变量、列、行。
谢谢你。
该文本文件内部有两个分隔符。第一个分隔符是逗号,用于分隔前 5 个变量(freq、ww_gtd、substance、unit 和 geo),第二个分隔符是制表符 ( )。
您可以从
readLines
查看。
head(readLines("F:/Edward/Stackoverflow/estat_env_ww_genp.tsv//estat_env_ww_genp.tsv"), 2)
[1] "freq,ww_gtd,substance,unit,geo\\TIME_PERIOD\t2000 \t2001 \t2002 \t2003 \t2004 \t2005 \t2006 \t2007 \t2008 \t2009 \t2010 \t2011 \t2012 \t2013 \t2014 \t2015 \t2016 \t2017 \t2018 \t2019 \t2020 \t2021 "
[2] "A,DIS,BOD,O2_TD,AT\t: \t: \t: \t: \t: \t: \t: \t: \t15.00 \t: \t15.00 \t: \t12.60 \t: \t12.50 \t: \t13.59 \t: \t12.57 \t12.90 \t12.78 \t16.99 "
您可以尝试使用
readr::read_tsv
(或带有制表符分隔符的 read.csv
)阅读本文,并稍后处理前 5 个变量。
df <- read_tsv("estat_env_ww_genp.tsv")
head(df, 3)
# A tibble: 3 × 23
freq,ww_gtd,substance,uni…¹ `2000` `2001` `2002` `2003` `2004` `2005` `2006`
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 A,DIS,BOD,O2_TD,AT : : : : : : :
2 A,DIS,BOD,O2_TD,BE 22.36… 21.28… 101.6… 11.16… 9.62 e 32.01… :
3 A,DIS,BOD,O2_TD,CY : : : : 0.45 0.50 :
# ℹ abbreviated name: ¹`freq,ww_gtd,substance,unit,geo\\TIME_PERIOD`
# ℹ 15 more variables: `2007` <chr>, `2008` <chr>, `2009` <chr>,
# `2010` <chr>, `2011` <chr>, `2012` <chr>, `2013` <chr>, `2014` <chr>,
# `2015` <chr>, `2016` <chr>, `2017` <chr>, `2018` <chr>, `2019` <chr>,
# `2020` <chr>, `2021` <chr>
您可以使用以下内容分隔第一列中的数据:
df |>
tidyr::separate(col=1, sep=",", into=c("freq", "ww_gtd", "substance", "unit", "geo"))
# A tibble: 1,880 × 27
freq ww_gtd substance unit geo `2000` `2001` `2002` `2003` `2004`
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 A DIS BOD O2_TD AT : : : : :
2 A DIS BOD O2_TD BE 22.36 e 21.28 e 101.67… 11.16… 9.62 e
3 A DIS BOD O2_TD CY : : : : 0.45
4 A DIS BOD O2_TD CZ : : : : :
5 A DIS BOD O2_TD EE : : : : :
6 A DIS BOD O2_TD FI : : : : :
7 A DIS BOD O2_TD LT : : : : :
8 A DIS BOD O2_TD LV 8.09 6.04 5.94 5.51 7.05
9 A DIS BOD O2_TD MT 0.00 0.00 0.00 0.00 0.00
10 A DIS BOD O2_TD RO : : : : :
# ℹ 1,870 more rows