应用应创建变量的函数后,变量未显示
Variable's don't show up after applying a function that should create a variable
下面有这段代码,但它没有产生我期望的结果。
我希望当我 运行 这段代码时,我会在环境选项卡中创建两个新变量:x_num 和 x_vector。 x_vector 将是从 0.01 到 20.0 的 2000 个值的向量,但这不会显示。
怎么会这样?
x_num <- 2000
x_step <- 0.01
INFSMALL <- 1e-4
B <- 20
CreateLocation <- function()
{
seq(x_num)*x_step
}
Initialization <- function()
{
x_num <- as.integer((B+INFSMALL)/x_step)
x_vector <- CreateLocation()
}
Initialization()
?"<<-"
给出 运算符“<<-”和“->>”通常仅在函数中使用,并导致通过父环境搜索现有定义被分配的变量。如果找到这样的变量(并且其绑定未锁定),则重新定义其值,否则在全局环境中进行赋值。
Initialization <- function()
{
x_num <<- as.integer((B+INFSMALL)/x_step)
x_vector <<- CreateLocation()
}
Initialization()
str(x_vector)
# num [1:2000] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 ...
不鼓励从函数内部写入全局环境,您应该 return
从函数中获取您需要的值。如果有多个值,您需要 return 一个列表。
Initialization <- function()
{
x_num <- as.integer((B+INFSMALL)/x_step)
x_vector <- CreateLocation()
list(x_num = x_num, x_vector = x_vector)
}
result <- Initialization()
result
的列表长度为 2,您可以使用 result$x_num
和 result$x_vector
访问单个项目。如果绝对有必要将它们作为单独的变量 x_num
和 x_vector
您可以使用 list2env
.
list2env(result, .GlobalEnv)
下面有这段代码,但它没有产生我期望的结果。
我希望当我 运行 这段代码时,我会在环境选项卡中创建两个新变量:x_num 和 x_vector。 x_vector 将是从 0.01 到 20.0 的 2000 个值的向量,但这不会显示。
怎么会这样?
x_num <- 2000
x_step <- 0.01
INFSMALL <- 1e-4
B <- 20
CreateLocation <- function()
{
seq(x_num)*x_step
}
Initialization <- function()
{
x_num <- as.integer((B+INFSMALL)/x_step)
x_vector <- CreateLocation()
}
Initialization()
?"<<-"
给出 运算符“<<-”和“->>”通常仅在函数中使用,并导致通过父环境搜索现有定义被分配的变量。如果找到这样的变量(并且其绑定未锁定),则重新定义其值,否则在全局环境中进行赋值。
Initialization <- function()
{
x_num <<- as.integer((B+INFSMALL)/x_step)
x_vector <<- CreateLocation()
}
Initialization()
str(x_vector)
# num [1:2000] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 ...
不鼓励从函数内部写入全局环境,您应该 return
从函数中获取您需要的值。如果有多个值,您需要 return 一个列表。
Initialization <- function()
{
x_num <- as.integer((B+INFSMALL)/x_step)
x_vector <- CreateLocation()
list(x_num = x_num, x_vector = x_vector)
}
result <- Initialization()
result
的列表长度为 2,您可以使用 result$x_num
和 result$x_vector
访问单个项目。如果绝对有必要将它们作为单独的变量 x_num
和 x_vector
您可以使用 list2env
.
list2env(result, .GlobalEnv)