首页 文章

使用条件将矢量值赋值给变量

提问于
浏览
0

如果我的数据中的元素的组值等于向量中的观察数量(向量由2000个观察值组成,我确切地说,那么我尝试将向量(vector1)中的值赋给变量(var1)我的数据集中的组) . 所以我想将向量的第一次观察分配给第1组中的所有观察结果,向第2组中的所有观察结果进行第二次观察,等等 .

我可以找到一个适用于循环的解决方案,这不是非常令人满意/高效,因为我的数据非常大..我的解决方案如下所示:

for (i in 1:length(vector1)) {
  mydata$var1[mydata$group==i] <- vector1[i]
}

我尝试使用额外的向量来解决它,该向量计算观察值和if函数 .

vector2 <- seq(1, length(vector1), by = 1)
Mydata$var1 <- if (mydata$group==vector2) vector1

但是,当然,矢量的行数与数据的行数不同,但不起作用 . 在循环函数中,我只需使用[i]来分配值 . 如果没有循环,我怎么能这样做?

1 回答

  • 0

    我不确定我是否完全理解你的问题 . 但是如果我们假设每个索引在vector1中都有一个值,那么这可能有效:

    Mydata$var1 <- vector1[Mydata$group]
    

相关问题