您可以使用“get”函数根据对象名称的字符串获取对象,但从长远来看,最好将变量存储在列表中并以这种方式访问它们,事情变得更加简单,您可以获取子集,可以使用 lapply 或 sapply 在每个元素上运行相同的代码。保存或删除时,您可以只处理整个列表,而不是尝试记住每个元素。例如:
mylist <- list(a=rnorm(100), b=rnorm(100) )
names(mylist)
summary(mylist[[1]])
# or
summary(mylist[['a']])
# or
summary(mylist$a)
# or
d <- 'a'
summary(mylist[[d]])
# or
lapply( mylist, summary )
如果您使用 lm(或其他建模函数)以编程方式创建用于分析的模型,那么一种方法是仅对数据进行子集化并使用“.”,例如:
yvar <- 'Sepal.Width'
xvars <- c('Petal.Width','Sepal.Length')
fit <- lm( Sepal.Width ~ ., data=iris[, c(yvar,xvars)] )
或者您可以使用“paste”或“sprintf”构建公式,然后使用“as.formula”将其转换为公式,例如:
yvar <- 'Sepal.Width'
xvars <- c('Petal.Width','Sepal.Length')
my.formula <- paste( yvar, '~', paste( xvars, collapse=' + ' ) )
my.formula <- as.formula(my.formula)
fit <- lm( my.formula, data=iris )
如果您正在查看自动拟合的许多不同模型,还要注意多重比较的问题。