请查看R
中的以下代码i=1
a1=function(x){
print(i)
i=i+1
return(x^2)}
a2=replicate(5,a1(2))
我希望输出为1 2 3 4 5
任何人都可以帮我吗?但是我不想写for循环。我希望保持复制功能不变。感谢您的建议/帮助。
答案 0 :(得分:0)
您可以通过全局变量赋值来完成此操作:
i=1
a1=function(x){
print(i)
i<<-i+1
return(x^2)}
a2=replicate(5,a1(2))
# [1] 1
# [1] 2
# [1] 3
# [1] 4
# [1] 5
这不是你应该怎么做的。
根据您真正想要做的事情,这可以起作用:
res <- sapply(1:5, print)