我正在写一个函数,它从一副牌中随机选择10张牌,然后我必须计算这套红心牌有多少张。我坚持使用substr(),因为我们被告知它可以帮助我们,但我不知道如何正确使用它。
卡片向量是
cards <-
paste0(c("A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K"),
rep(c("H", "C", "S", "D"), each = 13))到目前为止我所做的
drawCard <- function(x){
x <- sample(cards, x, replace = F)
print(x)
heartCount <- length(substr((" H"),2,2))
print(heartCount)
}
drawCard(10)它在全球范围内都有效,但我似乎不能随意选择我选择的卡片。
发布于 2021-02-09 13:49:56
这会给你你想要的。我修改了您的函数,使其具有两个参数df和nsample。这个想法是你首先substr你的样本卡片的第二个字符,然后你需要检查他们是否是"H“(==)。最后,使用sum来计算有多少是"H“。
drawCard <- function(df, nsample){
sample <- sample(df, nsample, replace = F)
heartCount <- sum((substr(sample, 2, 2) == "H"))
# print(sample)
return(heartCount)
}
drawCard(cards, 10)https://stackoverflow.com/questions/66113438
复制相似问题