我想从 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] 删除。
我来说两句