【发布时间】:2014-02-20 16:25:27
【问题描述】:
我正在尝试创建一个函数,甚至只是想出如何使用 data.table 语法运行一个循环,我可以按因子对表进行子集化,在这种情况下是 id 变量,然后在每个子集上运行一个线性模型,然后出结果。示例数据如下。
df <- data.frame(id = letters[1:3],
cyl = sample(c("a","b","c"), 30, replace = TRUE),
factor = sample(c(TRUE, FALSE), 30, replace = TRUE),
hp = sample(c(20:50), 30, replace = TRUE))
dt=as.data.table(df)
fit <- lm(hp ~ cyl + factor, data = df) #how do I get the [i] to work here to subset and iterate by each factor and also do it in data.table syntax?
预期结果类似于 fit[1] 模型、fit[2] 模型等。
【问题讨论】:
-
使用 factor 等函数作为变量名通常是一种不好的做法。只需将因子更改为 fac 即可。
-
你是对的,没注意到
标签: r data.table lm