编写一个函数,从R中的牌组中随机抽取五张牌(完整说明)

编写一个函数,从R中的牌组中随机抽取五张牌(完整说明),r,function,R,Function,“请创建一副牌,并将面部、套装和价值信息存储在数据框中。编写一个函数,从牌堆中随机抽取五张牌。” 这是我的数据帧代码 suit<-c("clubs","diamonds", "hearts", "spades") face<-c("king", "queen", "jack", "ten", "nin

“请创建一副牌,并将面部、套装和价值信息存储在数据框中。编写一个函数,从牌堆中随机抽取五张牌。”

这是我的数据帧代码

    suit<-c("clubs","diamonds", "hearts", "spades")
    face<-c("king", "queen", "jack", "ten", "nine", "eight", "seven", "six", "five", "four", "three", "two", "ace")
    num<-c(13, 12,11,10,9,8,7,6,5,4,3,2,1)
    deck <-data.frame(face=rep(face,4),
                      suit=c(rep("spades", 13), rep("clubs", 13), rep("diamonds", 13), rep("hearts", 13)),
                      num=rep(num,4))

suit您可以使用
sample
选择
n
随机卡

draw_n_random_cards <- function(deck, n) {
  deck[sample(nrow(deck), n), ]
}

set.seed(123)
result <- draw_n_random_cards(deck, 5)
result

#    face     suit num
#31  nine diamonds   9
#15 queen    clubs  12
#14  king    clubs  13
#3   jack   spades  11
#42  jack   hearts  11

随机抽取卡片我们可以使用
dplyr中的
sample\n

library(dplyr)
deck %>%
   sample_n(5)

循环代码中存在许多问题<套装中的代码>i
卡中的j
不会给出数值,因为您正在通过
[]
使用
i,j
进行子设置。此外,我无法理解这个while循环的原因。我不确定原因是什么,这不是我的代码。这是其他人的代码,用于绘制5张随机卡片并返回5个数字矢量谢谢。我想遵循逻辑,以确保我理解正确。1.您创建了一个名为“draw_n_random_cards”的函数,参数为“deck”和“n”。2.该函数的代码使用符号[sample(nrow(deck),n,]在deck中工作以绘制随机卡。“nrow”将数据帧“deck”和“n”中的行数返回为相同的“nrow”大小返回牌组的52行,“n”将从52行中抽取牌。3.Set.seed()函数允许每次复制相同的样本,并对相同的种子编号(123)获得相同的结果。#4.“Result”将对5张牌运行随机样本。这是正确的逻辑吗?我的最后一个问题是:即使我运行“Result”对象5张卡在输出上是相同的(脸、套装、号码都相同)。是的,您得到了正确的结果。
result
只是一个用于存储随机卡的变量。如果您每次运行
draw\n\u random\u cards
,都需要不同的卡。请从代码中删除
set.seed
library(dplyr)
deck %>%
   sample_n(5)