关于在填充它们的循环外使用填充的向量:
我想使用R中的[i]
索引为我的向量添加值。
举个例子:
vector_for_loop = c(1:10) #take values from this vector
outcome_vector = 0 #add new values to this vector
我使用sapply
并根据索引(这里等于值)添加它们:
sapply(vector_for_loop, function(i){
outcome_vector[i] = i+10
})
打印(在循环期间):11 12 13 14 15 16 17 18 19 20
但是,我希望outcome_vector
包含这些值,但是:
outcome_vector
是0
。
在填充outcome_vector
以使其在循环后可用时,我做错了什么?
答案 0 :(得分:1)
假设您希望使用sapply
执行此操作的具体原因,可以使用<<-
分配给父作用域:
vector_for_loop = c(1:10) #take values from this vector
outcome_vector = 0 #add new values to this vector
sapply(vector_for_loop, function(i){
outcome_vector[i] <<- i+10
})
在函数范围内使用<-
分配i + 10
。