variables - R中变量名的向量

标签 variables r vector

我想创建一个自动生成单变量和多元回归分析的函数,但是我无法弄清楚如何指定**向量中的变量... **这似乎非常容易,但是略读了文档到目前为止还没有弄清楚...

简单的例子

a<-rnorm(100)
b<-rnorm(100)
k<-c("a","b")
d<-c(a,b)
summary(k[1])

但是k [1] =“a”并且是一个字符向量... d只是将b附加在a后面,而不是变量名。实际上,我希望k [1]表示向量a。

感谢任何答案...

//M

最佳答案

您可以使用“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)] )

或者,您可以使用“粘贴”或“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 )

如果要查看许多自动拟合的模型,还请注意多重比较的问题。

关于variables - R中变量名的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585631/

相关文章:

javascript - 如何为字符串符号创建循环?

MySQL子查询变量传递

c++ - 查找 "masked vector"的最小元素的位置

Java多客户端服务器应用程序-如何组织套接字

c - 将信息放入列表中

r - 将稀疏邻接列表转换为 R 中的完整矩阵

r - 在 R 中使用 ezANOVA 输出进行计划对比

r - 关于何时分解 R 中的列的好的经验法则是什么?

c++ - MFC 对话框返回 vector

c++ - 自定义类的类型转换 - C++