将值分配给随机生成的装配

时间:2020-11-10 16:51:31

标签: r

suits <- c("clubs", "hearts", "spades", "diamonds")
face <- c("two","three","four","five","six","seven",
          "eight","nine","ten","jack","queen","king","ace")

deck <- crossing(suit = suits, face_val = face) %>%
  unite(card, face_val, suit, sep = '-') 


deal <- function(deck, handsize) {
  sample_n(deck, size = handsize, replace = TRUE)
}

deal(deck, 5)

所以本质上,我想计算生成的5张卡的总价值。因此,例如,国王的价值为10等。有什么方法最好地做到这一点。我认为我必须以某种方式为每个特定的卡分配一个值,然后从那里进行计算。 当我运行该功能时,我会随机得到5张卡片。 卡

1个王牌俱乐部
2个七锹 3颗钻石 4个四俱乐部
5个十颗钻石 例如,那么我想获取集合的总价值。所以在这种情况下应该是11 + 7 + 10 + 4 + 10 = 42

1 个答案:

答案 0 :(得分:1)

一个命名的值向量在这里会很好!这样一来,您就可以根据“交易”功能输出的名称进行索引。

face <- c("two","three","four","five","six","seven",
          "eight","nine","ten","jack","queen","king","ace")
values <- c(2:10, 10, 10, 10, 11)
names(values) <- face

hand <- sample(face, 5)
hand_vals <- values[hand]
hand_total <- sum(hand_vals)