f1 <- function(x){
pass[4]+x
}
f2 <- function(x,y){
pass=y
f1(x)
}
f2(x=3,y=c(1,2,3,4,5))
pass 变量不能传递给f1函数;谁能帮我解释原因?那我该怎么办?
答案 0 :(得分:0)
pass
在f2
范围内声明,因此仅在f1
范围内可用。如果要在f1
中引用它,则必须将它作为参数传递给f1
。
f1 <- function(x, pass) {
pass[4]+x
}
f2 <- function(x,y) {
pass=y
f1(x, pass)
}
答案 1 :(得分:0)
检查功能范围内的环境对象
f1 <- function(x){
print('f1: ')
print(ls(envir = environment()) )
# pass[4]+x
}
f2 <- function(x,y){
pass=y
print('f2: ')
print(ls(envir = environment()) )
f1(x)
}
f2(x=3,y=c(1,2,3,4,5))
尝试:
f2 <- function(x,y){
f1 <- function(x){
pass[4]+x
}
pass=y
f1(x)
}