【发布时间】:2019-06-26 14:13:52
【问题描述】:
我对以下类型的函数有疑问:
fun.name <- function(x,y) {
a<-x
b<-y
for (i in c(a, b)){
i<-i+1
print (i)
}
print(a)
print(b)
}
fun.name(1, 2)
结果是
[1] 2
[1] 3
[1] 1
[1] 2
如果我不创建任何 a 和 b 并且我只保留 x 和 y (fun.name <- function(x,y) { for (i in c(a, b))...),将获得相同的结果。
我无法理解这种行为。
我想要的是一个函数,它为每个参数添加一个并打印结果。为什么循环在函数中定义时不修改变量a和b?我想这是环境的问题,而且我还没有理解函数参数的性质。
感谢您的任何建议。
【问题讨论】:
-
如下 Tim 的回答所示,for 循环中的每个循环都将 i 设置为值
in c(a,b)之一。然后你在循环中对 i 进行更改。但是您从不将这些更改分配给 a 或 b,那么 a 或 b 将如何更改?