【发布时间】:2019-10-09 15:11:45
【问题描述】:
我需要使用 $ 符号将数据框列粘贴为 R 中的公式的帮助。
df1 <- data.frame(id1 = c(1, 2, 3, 4, 5),
id2 = c(1, 2, 3, 4, 5),
var1 = c(3,6,6,9,5),
var2 = c(1, 1, 0, 0, 1))
rownames(df1)<-c("first","second","third","fourth","fifth")
trait=c("id1","id2")
list=as.character("var1","var2")
for(i in trait){
fit <- lm(df1[,i]~df1$list[2])
}
我想粘贴 lm 的第二部分 (df1$list[2])。在 $ 之后,我希望它粘贴字符向量列表的相应元素。
【问题讨论】:
-
你can't use $ with variables。使用更通用的
[索引运算符。 -
好吧,我查看了它并像这样替换了 t:fit
-
为什么它不起作用,因为它们不是来自同一个数据框?你得到什么错误?我假设两个数据框的行数相同,否则回归将没有任何意义。
-
当我替换上面评论中提到的行时出现以下错误:
[.data.frame(df1, , list[2]) 中的错误:选择了未定义的列 -
另一个不错的选择是
for(i in seq_along(trait)) {fit <- lm(reformulate(list[i], trait[i]), df1); print(fit)}