【发布时间】:2018-07-18 08:43:39
【问题描述】:
所以,我有一个数据集,需要使用 for 循环做一些工作。
这是我的假数据:
#fake data
L <- data.frame(matrix(rnorm(20), nrow=10, ncol=10))
names(L) <- c("P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9","P10")
现在,我想对整个列应用一个函数并删除列“P1”。然后,再次运行该函数并删除“P5”等等。
这是删除的顺序。
# order of removing column
R < c(P1, P5, P2, P8, P9, P4, P3, P6, P7)
请帮帮我,谢谢。
【问题讨论】:
-
我假设您想在每一步都对新数据框做一些事情?否则你会一次性删除所有这些列?
-
R dplyr: Drop multiple columns
library(tidyverse); L%>% select(-one_of("P1", "P5", "P2", "P8", "P9", "P4", "P3", "P6", "P7"))的可能重复 -
我会发现每一步都形成一个多元线性回归模型。所以,基本上我一次删除一个变量。
-
好吧,将变量选择过程存储在一个字符向量中(在每次迭代后您要保留的列),并在每次迭代后将其传递到数据集以作为子集。我建议你看看
step()函数在 R 中是如何工作的。 -
我认为有些软件包可以进行逐步线性回归。例如,查看
stats包中的step()或leaps包中的regsubsets。