R 中的公式无法在循环中正确更新

Formula in R not updating properly in loop

所以在下面我没有按预期得到正确的公式

f <- dat[,1] ~ 1
for (j in 3:4) {
  f <- update(f, . ~ . + dat[,j] )
}

in 仅输出 dat[, 1] ~ dat[, j],其中 dat 是数据帧 1000x4。 我需要的输出是 dat[,1] ~ 1 + dat[,3] + dat[,4]

解决方案可能是:

f <- dat[,1] ~ 1
for (j in 3:4) {
  f <- update(f, paste("~ . + dat[,",j,"]",sep="") )