Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 函数中的基本循环索引_R_Loops - Fatal编程技术网

R 函数中的基本循环索引

R 函数中的基本循环索引,r,loops,R,Loops,我想在下面的代码中添加一个循环,这样它可以运行四次 n <- c(1000, 10000, 100000, 1000000) 下面是一种使用隐式循环(sapply)而不是for循环的方法: calc_pi <- function(n){ x <- c(runif(n, -1,1)) y <-c(runif(n, -1,1)) points <- data.frame(cbind(x,y)) z <- points$x^2 + points$

我想在下面的代码中添加一个循环,这样它可以运行四次

n <- c(1000, 10000, 100000, 1000000)

下面是一种使用隐式循环(
sapply
)而不是for循环的方法:

calc_pi <- function(n){
  x <- c(runif(n, -1,1))
  y <-c(runif(n, -1,1))
  points <- data.frame(cbind(x,y))

  z <- points$x^2 + points$y^2
  pi <- function(n,points){
    y <- 4*length(z[z<=1])/n
    return(y)
  }
  pi(n, points)
}

n <- c(1000, 10000, 100000, 1000000)
set.seed(1)
data.frame(n = n, pi = sapply(n, calc_pi))
      n       pi
1 1e+03 3.080000
2 1e+04 3.141600
3 1e+05 3.137640
4 1e+06 3.143064

calc\u pi以下是一种使用隐式循环(
sapply
)而不是for循环的方法:

calc_pi <- function(n){
  x <- c(runif(n, -1,1))
  y <-c(runif(n, -1,1))
  points <- data.frame(cbind(x,y))

  z <- points$x^2 + points$y^2
  pi <- function(n,points){
    y <- 4*length(z[z<=1])/n
    return(y)
  }
  pi(n, points)
}

n <- c(1000, 10000, 100000, 1000000)
set.seed(1)
data.frame(n = n, pi = sapply(n, calc_pi))
      n       pi
1 1e+03 3.080000
2 1e+04 3.141600
3 1e+05 3.137640
4 1e+06 3.143064

calc_pi只需为(c(1000,10000,100000,1000000)中的n添加
{
并关闭结尾处的花括号。@谢谢,但它只显示最后一次运行作为输出,我希望看到一个矩阵(4x2),两列n和pijust为(c(1000,10000,100000,1000000)中的n添加
{
并关闭结尾处的花括号。@谢谢,但它只显示最后一次运行作为输出,我想看一个矩阵(4x2),2列n和piThanks。如果我使用set,我将在每次运行代码时丢失输出的随机性,或者换句话说,使用set.seed,我每次运行代码时都会得到相同的答案。但这会使结果重复。如果我使用set,我将在每次运行代码时丢失输出的随机性,或者换句话说,在每次运行代码时,我都会得到相同的答案。但这会使您的结果重现