R 如何使用随机抽样的列表元素对另一个列表进行随机抽样?

R 如何使用随机抽样的列表元素对另一个列表进行随机抽样?,r,list,sampling,R,List,Sampling,我试图使用nbMtx$R中随机抽样的字母从列表的其他部分中抽样,但我得到一个错误,即我在第二次抽样尝试中的概率数不正确。我调用了length(nbMtx[start]),它返回[3],所以我不确定为什么我的概率向量visit_prob(有3个值)不起作用。我还尝试用c(.3、.3、.3)替换第二个示例中的prob参数,只是为了确定,但这也不起作用 set.seed(514) #seed in reference to the class’ code nbMtx <- list() #Ror

我试图使用nbMtx$R中随机抽样的字母从列表的其他部分中抽样,但我得到一个错误,即我在第二次抽样尝试中的概率数不正确。我调用了length(nbMtx[start]),它返回[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
set.seed(514)#参考类的代码进行seed

nbMtx通过分配到
开始
,我们看到

开始
#[1]“L”
查看导致错误的
访问
的下一个分配,第一个参数是

nbMtx[开始]
#1美元
#[1]“P”“R”“D”
长度(nbMtx[开始])
# [1] 1
这就是问题所在。相反,使用
[
,您将得到预期长度的向量:

nbMtx[[start]]
#[1]“P”“R”“D”

访问这样一个简单的解决方案,它的工作非常完美…谢谢!