R 当某些列是不同的类时,如何对所有变量运行线性回归

R 当某些列是不同的类时,如何对所有变量运行线性回归,r,dataframe,linear-regression,R,Dataframe,Linear Regression,我的数据框中有1000多列。我想在所有变量上运行线性回归,不想逐个编写它们。当我尝试这个的时候 lm(goal ~ ., data = df) 我得到这个错误: 对比中的错误您可以使用减法-运算符排除有问题的变量 lm(goal ~ . - var, data = df) 这似乎意味着传递给回归的一个因子变量只有一个级别。。因此,找到它并忽略它。你可以通过sappy(d[sappy(d,is.factor)],nlevels)找到它们;寻找那些只有一个水平的人这似乎是一种非常懒惰的态度。懒惰

我的数据框中有1000多列。我想在所有变量上运行线性回归,不想逐个编写它们。当我尝试这个的时候

lm(goal ~ ., data = df)
我得到这个错误:


对比中的错误您可以使用减法
-
运算符排除有问题的变量

lm(goal ~ . - var, data = df)

这似乎意味着传递给回归的一个因子变量只有一个级别。。因此,找到它并忽略它。你可以通过
sappy(d[sappy(d,is.factor)],nlevels)找到它们;寻找那些只有一个水平的人这似乎是一种非常懒惰的态度。懒惰不好吗?我们不应该总是想做一些懒惰的事情来为其他活动创造更多的时间吗。我真的应该写出1000多个变量吗。我计划使用3000多个变量。为什么我要浪费时间写出来呢?要找到以这种方式删除的列集,您应该检查只有一个值的列。对于数字,它可以被描述为零方差,但可能是数字和因子类型的混合。类似于
的东西(sapply(df,function(x)length(unique(x)))==1)
应该让您删除列索引。