तुम भी formulaऔर pasteकार्यों के संयोजन का उपयोग कर सकते हैं ।
सेटअप डेटा : Let कल्पना हम एक data.frame कि भविष्यवक्ता चर होते है है x1करने के लिए x100और हमारे निर्भर चर y, लेकिन वहाँ भी एक बाधा चर रहा है कि asdfasdf। साथ ही प्रेडिक्टर चर को एक क्रम में व्यवस्थित किया जाता है जैसे कि वे data.frame में सभी सन्निहित नहीं हैं।
Data <- data.frame(matrix(rnorm(102 * 200), ncol=102))
names(Data) <- c(paste("x", 1:50, sep=""),
"asdfasdf", "y", paste("x", 51:100, sep=""))
यह भी कल्पना करें कि आपके पास एक स्ट्रिंग है जिसमें भविष्यवक्ता चर के नाम हैं। इस स्थिति में, यह pasteफ़ंक्शन का उपयोग करके आसानी से बनाया जा सकता है , लेकिन अन्य स्थितियों में, grepया इस स्ट्रिंग को प्राप्त करने के लिए कुछ अन्य दृष्टिकोण का उपयोग किया जा सकता है।
PredictorVariables <- paste("x", 1:100, sep="")
दृष्टिकोण लागू करें : फिर हम निम्नानुसार एक सूत्र का निर्माण कर सकते हैं:
Formula <- formula(paste("y ~ ",
paste(PredictorVariables, collapse=" + ")))
lm(Formula, Data)
collapseतर्क आवेषण +भविष्यवक्ता चर के बीच
formulalmफ़ंक्शन के लिए उपयुक्त कक्षा सूत्र की एक वस्तु में स्ट्रिंग को कनवर्ट करता है।
आम तौर पर, मैं निम्नलिखित फ़ंक्शन का उपयोग नियमित रूप से करता हूं जब मैं एक वैरिएबल नाम के वेक्टर के रूप में एक भविष्यवक्ता चर की आपूर्ति करना चाहता हूं।
regression <- function(dv, ivs, data) {
# run a linear model with text arguments for dv and ivs
iv_string <- paste(ivs, collapse=" + ")
regression_formula <- as.formula(paste(dv, iv_string, sep=" ~ "))
lm(regression_formula, data)
}
उदाहरण के लिए,
regression("y", PredictorVariables, Data)