首页 > 解决方案 > 从 for 循环返回了一个额外的打印结果“[1] 36”:如何删除它?

问题描述

#Create a function to print squares of numbers in sequence
squareseq <- function(a) {
   for(i in 1:a) {
      b <- i^2
      result <- print(b)
   }
   return(result)
}

# Call the function supplying 6 as an argument
squareseq(6)

调用上述函数的结果如下图所示:

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36
[1] 36

如何保留“return(result)”但删除重复的行:“[1] 36”?所以我在下面得到这个结果:

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36

标签: r

解决方案


使用invisible

squareseq <- function(a) {
  for(i in 1:a) {
    b <- i^2
    result <- print(b)
  }
  invisible(result)
}

squareseq(6)
#[1] 1
#[1] 4
#[1] 9
#[1] 16
#[1] 25
#[1] 36

推荐阅读