覆盖函数内部的变量
Overwrite variable inside function
我确定这个问题可能已经有人问过了,但我找不到令我满意的答案。
所以我的问题是我定义了一个函数(见下文),它应该接受一个变量 (x) 并检查它是否是数据帧 (y) 的一部分。该函数应该要求提示,直到它成为所述数据帧的一部分。
然而,当我让它 运行 它不会覆盖函数内的变量,因此全局环境变量也被更改。
因此 var1 应该存储我通过函数内的提示给出的值。
谢谢:)
#Function
fn_Valid_prompt <- function(x, y, boolOP= FALSE){
while(is.element(x, colnames(y)) == boolOP){
cat("A")
x <<- readline(prompt="Please enter variable: ")
}
if (is.element(x, colnames(y)) != boolOP){
cat(green(bold("Success!")))}
}
#
var1 <- "V1"
data <- c(1:9)
metadata <- as.data.frame(matrix(data,3,3))
fn_Valid_prompt(var1, metadata, boolOP= FALSE)
以下版本有效,但我不确定您使用此代码的意图:
#Function
fn_Valid_prompt <- function(x, y, boolOP= FALSE){
while(is.element(x, colnames(y)) == boolOP){
x <- readline(prompt="Please enter variable: ")
}
if (is.element(x, colnames(y)) != boolOP){
cat("Success!")}
return(x)
}
#
var1 <- "V1"
data <- c(1:9)
metadata <- as.data.frame(matrix(data,3,3))
result = fn_Valid_prompt("V10", metadata, boolOP= FALSE)
cat(result)
您的错误是使用 <<-
而不是 <-
。此外,我假设您想要 return 结果?
我确定这个问题可能已经有人问过了,但我找不到令我满意的答案。
所以我的问题是我定义了一个函数(见下文),它应该接受一个变量 (x) 并检查它是否是数据帧 (y) 的一部分。该函数应该要求提示,直到它成为所述数据帧的一部分。
然而,当我让它 运行 它不会覆盖函数内的变量,因此全局环境变量也被更改。 因此 var1 应该存储我通过函数内的提示给出的值。
谢谢:)
#Function
fn_Valid_prompt <- function(x, y, boolOP= FALSE){
while(is.element(x, colnames(y)) == boolOP){
cat("A")
x <<- readline(prompt="Please enter variable: ")
}
if (is.element(x, colnames(y)) != boolOP){
cat(green(bold("Success!")))}
}
#
var1 <- "V1"
data <- c(1:9)
metadata <- as.data.frame(matrix(data,3,3))
fn_Valid_prompt(var1, metadata, boolOP= FALSE)
以下版本有效,但我不确定您使用此代码的意图:
#Function
fn_Valid_prompt <- function(x, y, boolOP= FALSE){
while(is.element(x, colnames(y)) == boolOP){
x <- readline(prompt="Please enter variable: ")
}
if (is.element(x, colnames(y)) != boolOP){
cat("Success!")}
return(x)
}
#
var1 <- "V1"
data <- c(1:9)
metadata <- as.data.frame(matrix(data,3,3))
result = fn_Valid_prompt("V10", metadata, boolOP= FALSE)
cat(result)
您的错误是使用 <<-
而不是 <-
。此外,我假设您想要 return 结果?