R 导入.tsv文件

R 导入.tsv文件,r,R,在R中导入.tsv文件时遇到问题。该数据文件来自Eurostats,可公开获取: 我使用以下代码导入它: immig <- read.table(file="immig.tsv", sep="\t", header=TRUE) 我做错了什么?我尝试使用sep=“,”,但它似乎可以解决一些问题,同时创建其他问题。类似的内容可以作为一个起点: link <- "http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDow

在R中导入
.tsv
文件时遇到问题。该数据文件来自Eurostats,可公开获取:

我使用以下代码导入它:

immig <- read.table(file="immig.tsv", sep="\t", header=TRUE)

我做错了什么?我尝试使用
sep=“,”
,但它似乎可以解决一些问题,同时创建其他问题。

类似的内容可以作为一个起点:

link <- "http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?file=data/migr_imm10ctb.tsv.gz"

data <- readr::read_csv(link) %>% 
       separate("geo\\time\t2015 \t2014 \t2013", into = c("geo", "2015", "2014", "2013"), sep = "\t")

link类似的内容可以作为一个起点:

link <- "http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?file=data/migr_imm10ctb.tsv.gz"

data <- readr::read_csv(link) %>% 
       separate("geo\\time\t2015 \t2014 \t2013", into = c("geo", "2015", "2014", "2013"), sep = "\t")

link是您缺少2013年数据的问题吗

我在该链接下载了该文件,使用命令行工具将其解压缩,然后使用readr库将其导入即可:

库(readr)
使用列规范分析的迁移:
#>科尔斯(
#>`age,agedef,c_出生,单位,性别,地理时间`=col_character(),
#>`2015`=col_character(),
#>`2014`=col_character(),
#>`2013`=col_character()
#> )
移民
#>#A tibble:45558 x 4
#>年龄、年龄定义、出生、单位、性别、地理位置\\time``2015``2014``2013`
#>                                            
#>截至472340934085,F区北区共1个完整CC5\U 13\U
#>2总计,完整,CC5×13×IS,NR,F,BE 1017 953 1035
#>3总的,完整的,CC5\u 13\u,用于X\u IS,NR,F,BG 559 577 743 p
#>4第2876章第2766章第2758章第13章第13章第4章第13章第4章总计
#>5总计,完整,CC5×13×IS,NR,F,CY 54
#>6总计,完整,CC5×13×IS,NR,F,CZ 120 106 155
#>7第14984号联邦住宅区第13单元共5单元
#>8第372 365 405号丹麦克朗第13号丹麦克朗的完整CC5号丹麦克朗总计
#>9总的,完整的,CC5_13_X_IS,NR,F,EE 23 7 16
#>10总的,完整的,CC5×13×IS,NR,F,EL 234
#> # ... 还有45548行
看起来有一些备用字符在(
743p
)周围浮动,其中应该只有数字,因此您需要进行更多清理,然后转换为数字。

库(dplyr)
图书馆(stringr)
移民%>%
突变(变量(`2015`:`2013`),str_提取,模式=“[0-9]+”)%>%
变异(变量(`2015`:`2013`),如.numeric)
#>#A tibble:45558 x 4
#>年龄、年龄定义、出生、单位、性别、地理位置\\time``2015``2014``2013`
#>                                            
#>截至472340934085,F区北区共1个完整CC5\U 13\U
#>2总计,完整,CC5×13×IS,NR,F,BE 1017 953 1035
#>3总的,完整的,CC5\u 13\u,用于编号为559 577 743的X\u IS
#>4第2876章第2766章第2758章第13章第13章第4章第13章第4章总计
#>5总计,完整,CC5×13×IS,NR,F,CY NA 54
#>6总计,完整,CC5×13×IS,NR,F,CZ 120 106 155
#>7总的,完整的,CC5_13_,用于编号为14984、F、DE NA的X_IS
#>8第372 365 405号丹麦克朗第13号丹麦克朗的完整CC5号丹麦克朗总计
#>9总的,完整的,CC5_13_X_IS,NR,F,EE 23 7 16
#>10总的,完整的,CC5_13_,用于X_IS,NR,F,EL NA 234
#> # ... 还有45548行
它是一个以制表符分隔的文件,但第一列都用逗号放在一起,因此如果您需要的是分隔开的信息,可以使用
tidyr::separate()

library(tidyr)
移民%>%
分开(`age,agedef,c_出生,单位,性别,地理\\time`,
c(“年龄”、“年龄定义”、“出生”、“单位”、“性别”、“地理位置”),
sep=“,”)
#>#A tibble:45558 x 9
#>年龄年龄定义c_出生单位性别geo`2015``2014``2013`
#>  *                        
#>在472340934085处,X的1个总完工CC5_13_为F
#>2对于X,总的完整CC5\u 13\u为1017 953 1035
#>3总完工CC5_13_为BG 559 577 743 p
#>4第2876章2766 2758章第13章总完工量
#>5总完工CC5_13_为第54周期
#>6总的完整CC5_13_为CZ 120 106 155
#>7.第14984条规定的总完工CC5第13条
#>8对于X的CC5 13总完工量为372 365 405丹麦克朗
#>9关于X的总完工CC5_13_为23 7 16
#>10总完工CC5_13_为234; X_,编号为234
#> # ... 还有45548行

您是否缺少2013年的数据

我在该链接下载了该文件,使用命令行工具将其解压缩,然后使用readr库将其导入即可:

库(readr)
使用列规范分析的迁移:
#>科尔斯(
#>`age,agedef,c_出生,单位,性别,地理时间`=col_character(),
#>`2015`=col_character(),
#>`2014`=col_character(),
#>`2013`=col_character()
#> )
移民
#>#A tibble:45558 x 4
#>年龄、年龄定义、出生、单位、性别、地理位置\\time``2015``2014``2013`
#>                                            
#>截至472340934085,F区北区共1个完整CC5\U 13\U
#>2总计,完整,CC5×13×IS,NR,F,BE 1017 953 1035
#>3总的,完整的,CC5\u 13\u,用于X\u IS,NR,F,BG 559 577 743 p
#>4第2876章第2766章第2758章第13章第13章第4章第13章第4章总计
#>5总计,完整,CC5×13×IS,NR,F,CY 54
#>6总计,完整,CC5×13×IS,NR,F,CZ 120 106 155
#>7第14984号联邦住宅区第13单元共5单元
#>8第372 365 405号丹麦克朗第13号丹麦克朗的完整CC5号丹麦克朗总计
#>9总的,完整的,CC5_13_X_IS,NR,F,EE 23 7 16
#>10总的,完整的,CC5×13×IS,NR,F,EL 234
#> # ... 还有45548行
看起来有一些备用字符在(
743p
)周围浮动,其中应该只有数字,因此您需要进行更多清理,然后转换为数字。

库(dplyr)
图书馆(stringr)
移民%>%
突变(变量(`2015`:`2013`),str_提取,模式=“[0-9]+”)%>%
变异(变量(`2015`:`2013`),如.numeric)
#>#A tibble:45558 x 4
#>年龄、年龄定义、出生、单位、性别、地理位置\\time``2015``2014``2013`
#>