将多个表从一个 tsv 文件读取到 R 数据帧

吉特

我想从 R 中的 github 读取数据。这是我的代码。

library(tidyverse)
cluster_tables <- read_tsv("https://raw.githubusercontent.com/hodcroftlab/covariants/master/cluster_tables/all_tables.tsv", skip_empty_rows = T)

它只读取第一列,不显示其余列。如何将此数据集作为 R 中的一个数据框?另外,有没有办法在此页面上创建带有标签表名的列?

罗纳克·沙阿

读取数据 skip = 4

cluster_tables <- readr::read_tsv("https://raw.githubusercontent.com/hodcroftlab/covariants/master/cluster_tables/all_tables.tsv", skip = 4, skip_empty_rows = TRUE)
head(cluster_tables)

#   X1             first_seq  num_seqs last_seq  
#  <chr>          <chr>      <chr>    <chr>     
#1 Netherlands    2020-06-20 1615     2021-01-21
#2 Spain          2020-06-20 2003     2021-01-12
#3 United Kingdom 2020-07-07 69421    2021-01-23
#4 Belgium        2020-07-17 384      2021-01-20
#5 Switzerland    2020-07-22 1706     2021-01-19
#6 Ireland        2020-07-23 603      2021-01-22

由于页面上有多个表可以在一个数据框中自动读取它们,我们可以进行一些操作。

  • 读取数据 readLines
  • 删除所有空行
  • 每当'##'遇到时将数据集拆分为一个新列表
  • 对于每个列表,分隔第一个值,即表的名称,并将其添加为新列。
  • 将数据帧列表合并到一个大数据帧 ( result) 中。
tmp <- readLines('https://raw.githubusercontent.com/hodcroftlab/covariants/master/cluster_tables/all_tables.tsv')
tmp <- tmp[tmp != '']

do.call(rbind, lapply(split(tmp, cumsum(grepl('##', tmp))), function(x) {
  name <- sub('##\\s+', '', x[1])
  x <- x[-1]
  transform(read.csv(text = paste0(x, collapse = '\n'), sep = '\t'), name = name)
})) -> result

head(result)
#                 X  first_seq num_seqs   last_seq    name
#1.1    Netherlands 2020-06-20     1615 2021-01-21 20A.EU1
#1.2          Spain 2020-06-20     2003 2021-01-12 20A.EU1
#1.3 United Kingdom 2020-07-07    69421 2021-01-23 20A.EU1
#1.4        Belgium 2020-07-17      384 2021-01-20 20A.EU1
#1.5    Switzerland 2020-07-22     1706 2021-01-19 20A.EU1
#1.6        Ireland 2020-07-23      603 2021-01-22 20A.EU1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R-从一个文本文件读取多个数据表

如何将多个JSON数据列表从一个文件读取到Pandas中

Pyspark将多个csv文件读取到一个数据帧中(或RDD?)

在 R 中循环读取多个 .tsv 文件

R:有条件地将数据从一个数据帧提取到另一个数据帧

将PDF文件中的数据读取到R中

如何使用熊猫将CSV文件读取到数据帧

将二进制数据从一个文件读取到另一个文件

R如何将gz表读取到数据帧列表

用于读取多个 csv (tsv) 文件的 R 进度条

R:如何将文件读取到具有不同分割的数据表中?

根据Like“ row_value”将数据从一个表读取到另一个表

如何在pyspark提取到Azure Databricks中的数据帧的一个文件中读取多个嵌套的json对象?

在R中读取多个CSV文件作为数据帧

将多个csv文件读取(并在每个csv文件中跳过2列)到R中的一个数据帧中?

使用唯一的分隔符和行尾将txt文件读取到pandas数据帧

SSIS将所有数据从一个表导出到多个文件

将本地文件读取到在Docker容器上运行的Zeppelin中的spark数据帧中

从目录和子目录将文件读取到pyspark数据帧中

将csv文件作为浮点数读取到pandas数据帧

将一个巨大的 R 数据帧写入 R 中的 4 个单独的文件中

使用D3将数据从tsv文件提取到javascript

将多个csv文件读取到Pandas数据框中

使用Scala API将TSV读取到Spark Dataframe中

将许多XML文件合并到R中的一个数据帧中

如何一次读取多个激光雷达文件(.las)并将它们组合成 R 中的一个数据帧

R根据另一个条件从一个数据集中生成多个Excel文件

读取多个文件,但跟踪哪个文件是R中的哪个数据帧

将数据从一个完整列表获取到 3 个单独的工作表