我对来自UCI的酵母数据集感兴趣(请参阅链接)。数据保存在文本公式中。我想将它加载到Rstudio中。我把它保存在办公室里(复制和粘贴)。然后,我试图将它加载到R工作室,但我得到的不清楚的单词而不是数据。
https://archive.ics.uci.edu/ml/datasets/Yeast
请帮忙吗?
答案 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" ...
......或者只是手工复制它们。