首页 > 解决方案 > 如何在R中使用循环粘贴功能(带“+”号)

问题描述

我正在创建一个回归模型,应该使用迭代器。但我有一些问题我想把这段代码变成一个循环,但我不知道该怎么做。

特别是我不知道如何在循环中粘贴函数中的“+”和“,”。请帮我

**R Code**

x <- array(1:(length(cor_test_table)-1))

if(length(cor_test_table)==nrow(Total)) 
{
  print("There are no independent variables that satisfy the correlation 
coefficient. Please adjust the correlation coefficient.")
}
if(1==length(cor_test_table)-1) # 1 independent variable
{
  lm_var <- paste(x[1]) 
}
if(2==length(cor_test_table)-1) # 2 independent variable
{
  lm_var <- paste(x[1],"+",x[2]) 
}  
if(3==length(cor_test_table)-1) # 3 independent variable
{
  lm_var <- paste(x[1],"+",x[2],"+",x[3]) 
}
if(4==length(cor_test_table)-1) # 4 independent variable
{
  lm_var <- paste(x[1],"+",x[2],"+",x[3],"+",x[4]) 
}else 
{
  print("There are too many independent variables, five or more. Please 
adjust the correlation coefficient.")
}

标签: r

解决方案


这应该归功于 Rui Barradas,但他没有把它作为答案。

可以使用as.formula(response ~ paste(x, collapse = " + ")) 其中 x 是要包含的术语的特征向量来生成公式。

请注意,您还可以专门指定公式,而不是包括在内,如下所示

data(mtcars)

summary(lm(mpg ~ ., data = mtcars)) #regresses mpg on all other variables
summary(lm(mpg ~ . - gear, data = mtcars)) # regresses mpg on all other variables EXCEPT gear

等等。


推荐阅读