คุณยังสามารถใช้การรวมกันของformulaและpasteฟังก์ชั่น
ข้อมูลการติดตั้ง : ลองจินตนาการว่าเรามี 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)