在 R 中的复制函数中使用大括号

use of curly brackets within replicate function in R

B <- 10000
results <- replicate(B, {
  hand <- sample(hands1, 2)
  (hand[1] %in% aces & hand[2] %in% facecard) | (hand[2] %in% aces & hand[1] %in% facecard)
})
mean(results)

这段代码可以完美运行并完成所需的 thi
这是一个 monte carlo 模拟。我不明白他们在复制函数中放置大括号 {} 的方式。我可以理解该代码的功能,但我无法理解他们放置代码的方式。

原因是我们有多个表达式

hand <- sample(hands1, 2)

是第一个表达式,第二个是

 (hand[1] %in% aces & hand[2] %in% facecard) | (hand[2] %in% aces & hand[1] %in% facecard)

即如果只有一个表达式,我们不需要用 {}

阻塞

这是一般情况,与 replicate 无关,即如果我们使用带有单个表达式的 for 循环,则不需要任何 {}

for(i in 1:5)
   print(i)

类似地,if/else

n <- 5
if(n == 5) 
  print(n)

只有当我们需要多个表达式时才需要它