gpt4 book ai didi

r - 如何以编程方式从 R 中的 UCI 数据存储库获取数据集的 header 信息

转载 作者:行者123 更新时间:2023-12-04 09:31:55 24 4
gpt4 key购买 nike

我正在尝试收集公开可用的 datasets from UCI repository对于 R。我知道有很多数据集已经可以用于几个 R 包,例如 mlbench。 但我仍然需要从 UCI 存储库中获得几个数据集。

这是我学会的技巧

url="http://archive.ics.uci.edu/ml/machine-learning-databases/credit-screening/crx.data"
credit<-read.csv(url, header=F)

但是这样并没有得到header(变量名)信息。该信息在 *.names 中文本格式的文件。知道如何以编程方式获取 header 信息吗?

最佳答案

我怀疑您必须使用正则表达式才能完成此操作。这是一个丑陋但通用的解决方案,应该适用于各种 *.names 文件,假设它们的格式与您发布的格式相似。

names.file.url <-'http://archive.ics.uci.edu/ml/machine-learning-databases/credit-screening/crx.names' 
names.file.lines <- readLines(names.file.url)

# get run lengths of consecutive lines containing a colon.
# then find the position of the subgrouping that has a run length
# equal to the number of columns in credit and sum the run lengths up
# to that value to get the index of the last line in the names block.
end.of.names <- with(rle(grepl(':', names.file.lines)),
sum(lengths[1:match(ncol(credit), lengths)]))

# extract those lines
names.lines <- names.file.lines[(end.of.names - ncol(credit) + 1):end.of.names]

# extract the names from those lines
names <- regmatches(names.lines, regexpr('(\\w)+(?=:)', names.lines, perl=TRUE))

# [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10" "A11"
# [12] "A12" "A13" "A14" "A15" "A16"

关于r - 如何以编程方式从 R 中的 UCI 数据存储库获取数据集的 header 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com