如何从网站下载文本数据集

时间:2017-12-07 17:00:22

标签: r

我对来自UCI的酵母数据集感兴趣(请参阅链接)。数据保存在文本公式中。我想将它加载到Rstudio中。我把它保存在办公室里(复制和粘贴)。然后,我试图将它加载到R工作室,但我得到的不清楚的单词而不是数据。

https://archive.ics.uci.edu/ml/datasets/Yeast

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

抓取数据非常简单;您可以直接将文件URL传递给read.table。获取名称的工作要多得多,因为它们被隐藏在文本文件中。如果您愿意,可以使用正则表达式提取它们:

library(tidyverse)

yeast <- read.table('https://archive.ics.uci.edu/ml/machine-learning-databases/yeast/yeast.data', stringsAsFactors = FALSE)

l <- readLines('https://archive.ics.uci.edu/ml/machine-learning-databases/yeast/yeast.names')
l <- l[(grep('^7', l) + 1):(grep('^8', l) - 1)]
l <- l[grep('\\d\\..*:', l)]

names(yeast) <- make.names(c(sub('.*\\d\\.\\s+(.*):.*', '\\1', l), 'class'))

str(yeast)
#> 'data.frame':    1484 obs. of  10 variables:
#>  $ Sequence.Name: chr  "ADT1_YEAST" "ADT2_YEAST" "ADT3_YEAST" "AAR2_YEAST" ...
#>  $ mcg          : num  0.58 0.43 0.64 0.58 0.42 0.51 0.5 0.48 0.55 0.4 ...
#>  $ gvh          : num  0.61 0.67 0.62 0.44 0.44 0.4 0.54 0.45 0.5 0.39 ...
#>  $ alm          : num  0.47 0.48 0.49 0.57 0.48 0.56 0.48 0.59 0.66 0.6 ...
#>  $ mit          : num  0.13 0.27 0.15 0.13 0.54 0.17 0.65 0.2 0.36 0.15 ...
#>  $ erl          : num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
#>  $ pox          : num  0 0 0 0 0 0.5 0 0 0 0 ...
#>  $ vac          : num  0.48 0.53 0.53 0.54 0.48 0.49 0.53 0.58 0.49 0.58 ...
#>  $ nuc          : num  0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.34 0.22 0.3 ...
#>  $ class        : chr  "MIT" "MIT" "MIT" "NUC" ...

......或者只是手工复制它们。