如何获取对象中对象的确切名称列表datasets https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/00Index.html包裹?
我在这里找到了很多:
data_package = data(package="datasets")
datasets <- as.data.frame(data_package[[3]])$Item
datasets
# [1] "AirPassengers" "BJsales" "BJsales.lead (BJsales)" "BOD" "CO2" "ChickWeight"
# [7] "DNase" "EuStockMarkets" "Formaldehyde" "HairEyeColor" "Harman23.cor" "Harman74.cor"
# [13] "Indometh" "InsectSprays" "JohnsonJohnson" "LakeHuron" "LifeCycleSavings" "Loblolly"
# [19] "Nile" "Orange" "OrchardSprays" "PlantGrowth" "Puromycin" "Seatbelts"
# [25] "Theoph" "Titanic" "ToothGrowth" "UCBAdmissions" "UKDriverDeaths" "UKgas"
# [31] "USAccDeaths" "USArrests" "USJudgeRatings" "USPersonalExpenditure" "UScitiesD" "VADeaths"
# [37] "WWWusage" "WorldPhones" "ability.cov" "airmiles" "airquality" "anscombe"
# [43] "attenu" "attitude" "austres" "beaver1 (beavers)" "beaver2 (beavers)" "cars"
# [49] "chickwts" "co2" "crimtab" "discoveries" "esoph" "euro"
# [55] "euro.cross (euro)" "eurodist" "faithful" "fdeaths (UKLungDeaths)" "freeny" "freeny.x (freeny)"
# [61] "freeny.y (freeny)" "infert" "iris" "iris3" "islands" "ldeaths (UKLungDeaths)"
# [67] "lh" "longley" "lynx" "mdeaths (UKLungDeaths)" "morley" "mtcars"
# [73] "nhtemp" "nottem" "npk" "occupationalStatus" "precip" "presidents"
# [79] "pressure" "quakes" "randu" "rivers" "rock" "sleep"
# [85] "stack.loss (stackloss)" "stack.x (stackloss)" "stackloss" "state.abb (state)" "state.area (state)" "state.center (state)"
# [91] "state.division (state)" "state.name (state)" "state.region (state)" "state.x77 (state)" "sunspot.month" "sunspot.year"
# [97] "sunspots" "swiss" "treering" "trees" "uspop" "volcano"
# [103] "warpbreaks" "women"
所以像这样的事情会遍历每一个
for(i in 1:length(datasets)) {
print(get(datasets[i]))
cat("\n\n")
}
它适用于前两个数据集(AirPassengers
and BJsales
),但它失败了BJsales.lead (BJsales)
因为它应该被称为datasets::BJsales.lead
.
我想我可以使用字符串分割或类似的方法来丢弃空间中的任何内容,但我想知道是否有任何更简洁的方法来获取对象中所有对象的列表dataset
包裹?
Notes
- 除了上述之外,我还尝试过列出所有内容datasets名称空间 https://stackoverflow.com/a/12115495/5783745但它给出了一个奇怪的结果:
ls(getNamespace("datasets"), all.names=TRUE)
# [1] ".__NAMESPACE__." ".__S3MethodsTable__." ".packageName"
上面有一个注释?data
帮助页面指出
如果数据集的名称与用于检索它们的参数的名称不同,则索引将具有类似的条目beaver1 (beavers)
这告诉我们数据集beaver1
可以通过调用来检索data(beavers)
.
所以实际的对象名称是末尾括号之前的内容。由于该值仅作为字符串返回,因此不幸的是您需要自行删除该值。但你可以用gsub
datanames <- data(package="datasets")$results[,"Item"]
objnames <- gsub("\\s+\\(.*\\)","", datanames)
for(ds in objnames) {
print(get(ds))
cat("\n\n")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)