将印刷品复制到R中

时间:2016-07-05 21:20:03

标签: r

请查看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循环。我希望保持复制功能不变。感谢您的建议/帮助。

1 个答案:

答案 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)