तुम भी 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
तर्क आवेषण +
भविष्यवक्ता चर के बीच
formula
lm
फ़ंक्शन के लिए उपयुक्त कक्षा सूत्र की एक वस्तु में स्ट्रिंग को कनवर्ट करता है।
आम तौर पर, मैं निम्नलिखित फ़ंक्शन का उपयोग नियमित रूप से करता हूं जब मैं एक वैरिएबल नाम के वेक्टर के रूप में एक भविष्यवक्ता चर की आपूर्ति करना चाहता हूं।
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)