R公式中作为变量引用的字符串

R公式中作为变量引用的字符串,r,R,我是新手。我有一个名为dbdata的列表。通常我是这样使用的: myresults <- rlm(V001 ~ V002+V003, data=dbdata) var1 <- "V001" var2 <- "V002" var3 <- "V003" myresults <- rlm(var1 ~ var2+var3, data=dbdata) myresults一种解决方案是使用paste()构建公式并将其转换为公式: > ## your example

我是新手。我有一个名为
dbdata
的列表。通常我是这样使用的:

myresults <- rlm(V001 ~ V002+V003, data=dbdata)
var1 <- "V001"
var2 <- "V002"
var3 <- "V003"
myresults <- rlm(var1 ~ var2+var3, data=dbdata)

myresults一种解决方案是使用
paste()
构建公式并将其转换为公式:

> ## your example plus some dummy data
> var1 <- "V001"
> var2 <- "V002"
> var3 <- "V003"
> dat <- data.frame(V001 = runif(10), V002 = runif(10), V003 = runif(10))
> f <- formula(paste(var1, "~", var2, "+", var3))
这真的是一个公式。现在我们可以将其作为第一个参数传递到
rlm()

> require(MASS)
> mod <- rlm(f, data = dat)
> mod
Call:
rlm(formula = f, data = dat)
Converged in 8 iterations

Coefficients:
(Intercept)        V002        V003 
  0.2725538  -0.1281576   0.1617250 

Degrees of freedom: 10 total; 7 residual
Scale estimate: 0.251
>需要(质量)
>mod mod
电话:
rlm(公式=f,数据=dat)
在8次迭代中收敛
系数:
(截距)V002 V003
0.2725538  -0.1281576   0.1617250 
自由度:共10个;7剩余
比额表估计数:0.251

HTH

您可以使用
重新格式化
函数基于字符串创建公式:

form <- reformulate(c(var2, var3), response = var1)
# V001 ~ V002 + V003

myresults <- rlm(form, data = dbdata)
表单
form <- reformulate(c(var2, var3), response = var1)
# V001 ~ V002 + V003

myresults <- rlm(form, data = dbdata)