捕获R矩阵列表

捕获R矩阵列表,r,list,matrix,variable-assignment,R,List,Matrix,Variable Assignment,下面这段代码正在生成我需要的内容,但我无法存储它以便进一步使用它 在下面的例子中,我想将每个玩家的手牌存储在矩阵p的列表中,这样p[I]我相信这应该是你想要的。它将返回一个包含两项的列表 这两项中的第一项是手牌列表p,最后一项是经销商的手牌 它退回的两件物品中的第二件将是新的deck2 player_hands=function(players) { if(players >= 2 && players <= 10) { p = list()

下面这段代码正在生成我需要的内容,但我无法存储它以便进一步使用它


在下面的例子中,我想将每个玩家的手牌存储在矩阵p的列表中,这样p[I]我相信这应该是你想要的。它将返回一个包含两项的列表

这两项中的第一项是手牌列表p,最后一项是经销商的手牌

它退回的两件物品中的第二件将是新的deck2

player_hands=function(players)
{   if(players >= 2 && players <= 10) {
        p = list()
                for(i in 1:players) 
                { 
                smpl <- sample(1:NROW(deck2),2,replace=F)
                r <- deck2[smpl,]
                p[[i]] = r
                deck2 <- deck2[-smpl,]
                    if(i==players)
                    {   smpl <- sample(1:NROW(deck2),3,replace=F)
                        r <- deck2[smpl,]
                        p[[players+1]] <- r
                        deck2 <- deck2[-smpl,]
                    }
                    else i=i+1
                }
                return(list(p, deck2))         
                              }
    else print("Invalid No. of Players")

}

D很抱歉混淆。您可以忽略这一点。这只是为最终deck2提供的先前名称。因为deck2列表在每次迭代递减后都不会更新。这是完美的。但是现在修改和添加额外的行,即更改p[i]列表元素的dims似乎很复杂。而不是考虑添加新的自定义矩阵p[players+2]做手术很简单。哪一个更好?我不确定我是否理解你的意思?谢谢Philip。现在解决了。我尝试了这个->
player_hands=function(players)
{   if(players >= 2 && players <= 10) {
        p = list()
                for(i in 1:players) 
                { 
                smpl <- sample(1:NROW(deck2),2,replace=F)
                r <- deck2[smpl,]
                p[[i]] = r
                deck2 <- deck2[-smpl,]
                    if(i==players)
                    {   smpl <- sample(1:NROW(deck2),3,replace=F)
                        r <- deck2[smpl,]
                        p[[players+1]] <- r
                        deck2 <- deck2[-smpl,]
                    }
                    else i=i+1
                }
                return(list(p, deck2))         
                              }
    else print("Invalid No. of Players")

}