[英]How to paste formula into model.matrix function in R?
通過簡化的示例,假設您具有以下數據:
n <- 10
df <- data.frame(x1 = rnorm(n, 3, 1), x2 = rnorm(n, 0, 1))
您希望創建以下形式的模型矩陣:
model.matrix(~ df$x1 + df$x2)
或更優選地:
model.matrix(~ x1 + x2, data = df)
而是將公式粘貼到model.matrix
。 我已經嘗試了以下方法,但所有方法都遇到錯誤:
form1 <- "df$x1 + df$x2"
model.matrix(~ as.formula(form1))
model.matrix(~ eval(parse(text = form1)))
model.matrix(~ paste(form1))
model.matrix(~ form1)
我還嘗試了更優選的結構:
form2 <- "x1 + x2, data = df"
有直接解決此問題的方法嗎? 還是model.matrix
函數不利於這種方法?
你的意思是這樣嗎?
expr <- "~ x1 + x2"
model.matrix(as.formula(expr), df)
您需要給df
作為as.formula
之外的data
參數,因為data
參數定義了在其中評估公式的環境。
如果您不想指定data
參數,則可以執行
model.matrix(as.formula("~ df$x1 + df$x2"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.