如何使用随机抽取的列表元素随机抽取另一个列表?
How to use a randomly sampled list element to randomly sample another list?
我正在尝试使用 nbMtx$R 中的随机抽样字母从列表的其他组件之一中抽样,但我收到一条错误消息,提示我在第二次尝试时出现的概率数不正确采样。我调用了 length(nbMtx[start]) 并且它 returns [3],所以我不确定为什么我的概率向量 visit_prob(具有 3 个值)不起作用。我还尝试用 c(.3, .3, .3) 替换第二个示例中的 prob 参数,只是为了确定,但这也没有用。
set.seed(514) #seed in reference to the class’ code
nbMtx <- list() #Rory’s neighborhood connections
nbMtx$R <- c("L","P","D","J")
nbMtx$L <- c("P","R","D")
nbMtx$P <- c("L","R","J")
nbMtx$D <- c("L","R","J")
nbMtx$J <- c("P","R","D")
original_prob<- rep.int(.25, 4)
visit_prob<- rep.int((1/3), 3)
start<- sample(nbMtx$R, 1, replace=FALSE, prob=original_prob)
visit<- sample(nbMtx[start], 1, replace=FALSE, prob=visit_prob)
Error in sample.int(length(x), size, replace, prob) :
incorrect number of probabilities
运行 通过对 start
的赋值,我们看到
start
# [1] "L"
查看下一个导致错误的 visit
赋值,第一个参数是
nbMtx[start]
# $L
# [1] "P" "R" "D"
length(nbMtx[start])
# [1] 1
问题来了。而是使用 [[
,你会得到一个你期望长度的向量:
nbMtx[[start]]
# [1] "P" "R" "D"
visit <- sample(nbMtx[[start]], 1, replace=FALSE, prob=visit_prob)
visit
# [1] "P"
我正在尝试使用 nbMtx$R 中的随机抽样字母从列表的其他组件之一中抽样,但我收到一条错误消息,提示我在第二次尝试时出现的概率数不正确采样。我调用了 length(nbMtx[start]) 并且它 returns [3],所以我不确定为什么我的概率向量 visit_prob(具有 3 个值)不起作用。我还尝试用 c(.3, .3, .3) 替换第二个示例中的 prob 参数,只是为了确定,但这也没有用。
set.seed(514) #seed in reference to the class’ code
nbMtx <- list() #Rory’s neighborhood connections
nbMtx$R <- c("L","P","D","J")
nbMtx$L <- c("P","R","D")
nbMtx$P <- c("L","R","J")
nbMtx$D <- c("L","R","J")
nbMtx$J <- c("P","R","D")
original_prob<- rep.int(.25, 4)
visit_prob<- rep.int((1/3), 3)
start<- sample(nbMtx$R, 1, replace=FALSE, prob=original_prob)
visit<- sample(nbMtx[start], 1, replace=FALSE, prob=visit_prob)
Error in sample.int(length(x), size, replace, prob) :
incorrect number of probabilities
运行 通过对 start
的赋值,我们看到
start
# [1] "L"
查看下一个导致错误的 visit
赋值,第一个参数是
nbMtx[start]
# $L
# [1] "P" "R" "D"
length(nbMtx[start])
# [1] 1
问题来了。而是使用 [[
,你会得到一个你期望长度的向量:
nbMtx[[start]]
# [1] "P" "R" "D"
visit <- sample(nbMtx[[start]], 1, replace=FALSE, prob=visit_prob)
visit
# [1] "P"