คุณยังสามารถใช้การรวมกันของ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)