簡體   English   中英

如何將公式粘貼到R中的model.matrix函數中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM