तालिका myfun()
द्वारा दिया उचित शर्तों के साथ फ़िल्टर किया जा सकता है, और डेटासेट के कॉलम कक्षाएं coulmn में दिए गए अपने वर्ग से पहचाना जा सकता।
caret
पैकेज के साथ समस्या यह है कि यह किसी भी डेटा फ्रेम या मैट्रिक्स वस्तु नहीं है कि है। डेटा ऑब्जेक्ट के अंदर caret
में डेटासेट मौजूद हो सकते हैं। मुझे इसके बारे में निश्चित नहीं है, caret
पैकेज में कुछ सूची ऑब्जेक्ट्स में फ़ंक्शंस की एक सूची है।
इसके अलावा, अगर रुचि रखते हैं, तो आप myfun()
समारोह डेटा फ्रेम या मैट्रिक्स वस्तुओं केवल के बारे में जानकारी देने के लिए अधिक विशिष्ट बना सकते हैं।
myfun <- function(package)
{
t(sapply(ls(paste0('package:', package)), function(x){
y <- eval(parse(text = paste0(package, "::`", x, "`")))
data.frame(data_class = paste0(class(y), collapse = ","),
nrow = ifelse(any(class(y) %in% c("data.frame", "matrix")),
nrow(y),
NA_integer_),
ncol = ifelse(any(class(y) %in% c("data.frame", "matrix")),
ncol(y),
NA_integer_),
classes = ifelse(any(class(y) %in% c("data.frame", "matrix")),
paste0(unlist(lapply(y, class)), collapse = ","),
NA),
stringsAsFactors = FALSE)
}))
}
library(datasets)
meta_data <- myfun(package = "datasets")
head(meta_data)
# data_class nrow ncol classes
# ability.cov "list" NA NA NA
# airmiles "ts" NA NA NA
# AirPassengers "ts" NA NA NA
# airquality "data.frame" 153 6 "integer,integer,numeric,integer,integer,integer"
# anscombe "data.frame" 11 8 "numeric,numeric,numeric,numeric,numeric,numeric,numeric,numeric"
# attenu "data.frame" 182 5 "numeric,numeric,factor,numeric,numeric"
meta_data[ "ChickWeight", ]
# $data_class
# [1] "nfnGroupedData,nfGroupedData,groupedData,data.frame"
#
# $nrow
# [1] 578
#
# $ncol
# [1] 4
#
# $classes
# [1] "numeric,numeric,ordered,factor,factor"
library('caret')
meta_data <- myfun(package = "caret")
# data_class nrow ncol classes
# anovaScores "function" NA NA NA
# avNNet "function" NA NA NA
# bag "function" NA NA NA
# bagControl "function" NA NA NA
# bagEarth "function" NA NA NA
# bagEarthStats "function" NA NA NA
लोड संकुल पैकेज पर myfun()
समारोह लागू करने के बाद उतार दिया करने के लिए की जरूरत है, इस प्रयास करें:
loaded_pkgs <- search()
library('caret')
meta_data <- myfun(package = "caret")
unload_pkgs <- setdiff(search(), loaded_pkgs)
for(i in unload_pkgs) {
detach(pos = which(search() %in% i))
}
यह सुंदर है ... –
FYI करें मैं यह समारोह मैं, का उपयोग करेंगे मेरी अद्यतन जवाब देखने में फिर से काम किया है। –