使用可变样本大小从数据帧中随机采样

Cat*_*ing 7 r

我有一个lexicon包含 650 个单词的数据框 ,我想通过从 中随机选择单词来为 5 个发言者创建一系列随机单词列表lexicon。我希望通过 24 个月的数据收集来完成此任务,每个月都会采集不同大小的词汇样本。指定月份和词汇量大小的基本数据框是df1

df1 <- data.frame(months=rep(1:24, times=5, each=1),
                  vocab_size=(sample(c(0:25), 120, replace=TRUE)),
                  Speaker=rep(c("A", "B", "C", "D", "E"), times=1, each=24))

list1 <- split(df1, f=df1$Speaker)
Run Code Online (Sandbox Code Playgroud)

lexicon看起来像这样:

lexicon <- data.frame(c("a", "about", "above", "ain't", "all", "am", "an", "and",  
                        "animal",  "ankle", "ant" ,"any", "apple","applesauce", 
                        "asleep", "at",  "ate",  "aunt", "auntie",  "aunty's", 
                        "awake", "away", "baa", "baby" , "baby+doll", "bad" ,
                        "ball", "balloon", "banana", "basket", "bat", "bath", 
                        "bathing", "bathtub", "be", "beach", "bead", "bean",
                        "because", "bed", "beddy", "bee", "been", "behind",
                        "being", "belt", "bench", "bib", "bicycle", "big"))
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用以下代码生成我之后的输出:

vocab_data <- lapply(list1, FUN=function(element) {
  all_vocab <- slice_sample(lexicon, n=element$vocab_size, replace=TRUE)
})
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息

 Error in `slice_sample()`:
 ! `n` must be a constant.
 Caused by error in `element$vocab_size`:
 ! $ operator is invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以以这种方式从数据框中提取不同大小的样本,为每个说话者创建每个月的词汇列表?

jay*_*.sf 8

使用samplemapply. 请注意,我仅用lexicon作向量。

> set.seed(42)
> by(df1, ~Speaker, \(x) 
+    mapply(sample, list(lexicon), x$vocab_size, MoreArgs=list(replace=TRUE))
+ )
Speaker: A
[[1]]
 [1] "bicycle"   "bead"      "a"         "baby+doll" "ankle"     "beach"     "aunt"      "bicycle"  
 [9] "bench"     "baby"      "an"        "beach"     "baby+doll" "bead"      "belt"      "aunty's"  

[[2]]
[1] "bad"   "big"   "bench" "above"

[[3]]
character(0)

[[4]]
 [1] "beddy"     "baby+doll" "ball"      "beach"     "bead"      "bat"       "being"     "all"      
 [9] "aunty's"   "bathtub"   "balloon"   "bed"       "above"     "bathing"   "bee"       "baby"     
[17] "basket"    "been"      "asleep"    "away"      "and"       "beach"     "ain't"     "away"     

[[5]]
[1] "aunt"    "being"   "balloon" "all"     "ain't"   "bathtub" "big"     "be"      "baby"   

[[6]]
[1] "baa"     "bicycle" "bad"    

[[7]]
 [1] "big"     "am"      "am"      "about"   "above"   "awake"   "about"   "bean"    "ankle"   "bed"    
[11] "all"     "bathing" "bicycle" "because" "beach"   "being"   "bee"    

[[8]]
 [1] "animal"  "banana"  "any"     "aunty's" "animal"  "been"    "be"      "banana"  "at"      "bead"   
[11] "balloon" "belt"    "all"     "balloon" "about"   "aunt"    "baby"    "bicycle" "aunt"    "all"    
[21] "belt"    "bed"     "bed"     "awake"   "beach"  

[[9]]
 [1] "beach"   "because" "bee"     "aunt"    "ball"    "apple"   "auntie"  "bath"    "at"      "banana" 
[11] "ate"     "behind"  "animal"  "awake"   "been"    "bib"    

[[10]]
 [1] "and"        "banana"     "bean"       "a"          "apple"      "applesauce" "all"        "animal"    
 [9] "at"         "bad"        "been"       "bee"        "bee"        "bathing"   

[[11]]
 [1] "banana"     "baby+doll"  "bath"       "ate"        "belt"       "applesauce" "bench"      "am"        
 [9] "bench"      "been"       "bead"       "at"         "bicycle"    "bicycle"    "big"        "bat"       
[17] "bathtub"    "basket"     "bath"       "am"         "away"       "bean"       "bat"       

[[12]]
[1] "am"      "aunty's" "asleep"  "bathtub" "bee"     "baa"    

[[13]]
[1] "any"   "bad"   "beddy"

[[14]]
 [1] "a"          "about"      "baby"       "bathtub"    "baby+doll"  "balloon"    "been"       "applesauce"
 [9] "bathtub"    "about"      "bat"        "bath"       "ball"       "ankle"      "balloon"    "bead"      
[17] "ankle"      "bicycle"    "bicycle"    "all"        "be"         "applesauce" "applesauce" "balloon"   

[[15]]
[1] "bathing" "bead"    "be"      "bad"    

[[16]]
 [1] "bat"     "being"   "been"    "bath"    "ate"     "ball"    "basket"  "beach"   "aunty's" "ant"    
[11] "ate"     "animal"  "ate"    

[[17]]
 [1] "apple"   "bat"     "bicycle" "a"       "ate"     "bathing" "balloon" "about"   "bat"     "and"    
[11] "at"      "above"   "bead"    "apple"   "any"     "a"       "basket"  "bat"     "bead"   

[[18]]
 [1] "bench"     "am"        "at"        "ankle"     "an"        "animal"    "beddy"     "baby+doll"
 [9] "above"     "aunt"      "bench"     "balloon"   "asleep"    "banana"    "aunty's"   "baby+doll"
[17] "at"        "baby"      "bathing"   "bean"      "been"      "beddy"     "away"      "bad"      
[25] "aunty's"  

[[19]]
 [1] "being"      "bead"       "been"       "asleep"     "awake"      "bathtub"    "baby+doll"  "bean"      
 [9] "a"          "applesauce" "bib"        "bicycle"    "ant"        "balloon"    "aunt"       "bathtub"   
[17] "bee"       

[[20]]
 [1] "beach"   "aunty's" "asleep"  "an"      "bicycle" "ball"    "basket"  "all"     "away"    "aunty's"
[11] "big"     "beddy"   "ant"     "balloon"

[[21]]
[1] "bean" "bee" 

[[22]]
[1] "animal"  "baa"     "bad"     "beddy"   "ant"     "auntie"  "balloon" "awake"  

[[23]]
 [1] "beach"      "bee"        "away"       "baby+doll"  "bicycle"    "basket"     "awake"      "behind"    
 [9] "awake"      "am"         "bench"      "beddy"      "ankle"      "baby"       "big"        "an"        
[17] "applesauce" "any"        "ankle"      "baby+doll"  "bead"       "about"      "be"         "bathtub"   

[[24]]
[1] "ball" "belt" "bat" 

---------------------------------------------------------------------------------- 
Speaker: B
[[1]]
[1] "ball"  "at"    "beach" "baby" 

[[2]]
 [1] "bean"       "awake"      "aunty's"    "ant"        "bathing"    "applesauce" "balloon"    "bathing"   
 [9] "banana"     "beach"      "being"      "bath"      

[[3]]
[1] "bean"   "away"   "behind" "an"    

[[4]]
 [1] "behind"  "all"     "bat"     "bath"    "aunt"    "because" "apple"   "basket"  "about"   "balloon"
[11] "above"   "bathing" "bench"   "banana"  "aunty's" "been"    "animal"  "ankle"   "an"     

[[5]]
[1] "balloon"

[[6]]
[1] "aunt"      "baby+doll" "behind"    "ankle"     "animal"    "auntie"    "asleep"   

[[7]]
[1] "belt"  "above"

[[8]]
 [1] "away"      "aunty's"   "bee"       "bathtub"   "baa"       "ate"       "aunt"      "auntie"   
 [9] "belt"      "ate"       "basket"    "ankle"     "bead"      "being"     "big"       "ankle"    
[17] "bib"       "bathtub"   "ain't"     "baby+doll" "bad"       "because"   "bathing"   "belt"     
[25] "away"     

[[9]]
character(0)

[[10]]
[1] "behind"    "auntie"    "am"        "behind"    "baby+doll" "basket"    "bee"       "because"  
[9] "baby+doll"

[[11]]
 [1] "about"      "bean"       "animal"     "ant"        "am"         "bat"        "all"        "applesauce"
 [9] "bee"        "bench"      "a"          "beddy"      "ankle"      "bicycle"    "any"        "away"      
[17] "a"          "been"       "ain't"      "above"      "bean"       "all"        "bee"       

[[12]]
 [1] "aunty's" "bathtub" "baa"     "beach"   "aunty's" "animal"  "ball"    "belt"    "belt"    "above"  

[[13]]
 [1] "bat"     "aunt"    "ankle"   "bathing" "bed"     "aunty's" "bead"    "am"      "banana"  "belt"   
[11] "ain't"   "ball"    "animal"  "bed"    

[[14]]
 [1] "baa"       "bib"       "bad"       "any"       "ankle"     "belt"      "been"      "baa"      
 [9] "ball"      "bathtub"   "at"        "belt"      "baby+doll" "balloon"   "asleep"    "bicycle"  
[17] "bean"      "baa"       "auntie"    "ankle"     "apple"    

[[15]]
 [1] "bean"      "a"         "ant"       "being"     "bad"       "ankle"     "being"     "asleep"   
 [9] "ate"       "bench"     "and"       "beach"     "am"        "ankle"     "ball"      "aunty's"  
[17] "baby+doll" "baby"      "at"        "behind"    "at"        "above"     "bath"      "awake"    
[25] "because"  

[[16]]
[1] "above"  "ankle"  "awake"  "bee"    "an"     "auntie" "banana"

[[17]]
[1] "being" "bee"   "belt" 

[[18]]
[1] "baby"   "banana" "basket"

[[19]]
 [1] "been"    "being"   "be"      "bee"     "bathtub" "because" "awake"   "been"    "been"    "bad"    
[11] "bathing" "am"      "baa"     "bee"     "beddy"   "behind"  "being"   "aunt"    "bench"   "awake"  
[21] "bathing"

[[20]]
 [1] "ant"        "bed"        "being"      "applesauce" "about"      "bean"       "being"      "be"        
 [9] "balloon"    "being"      "at"         "at"         "being"      "being"      "and"        "being"     
[17] "bean"      

[[21]]
 [1] "bean"    "and"     "bat"     "bead"    "baa"     "beddy"   "ankle"   "ant"     "ball"    "baa"    
[11] "bathing" "away"   

[[22]]
[1] "asleep"  "ain't"   "because" "been"   

[[23]]
[1] "ankle" "and"   "bat"  

[[24]]
[1] "balloon"

---------------------------------------------------------------------------------- 
Speaker: C
[[1]]
 [1] "be"      "being"   "aunty's" "bib"     "and"     "bath"    "above"   "beddy"   "bib"     "ant"    
[11] "apple"   "because" "aunt"    "because" "awake"   "all"     "bat"     "aunty's" "aunt"    "because"
[21] "bicycle" "above"   "bib"    

[[2]]
 [1] "and"     "auntie"  "big"     "ankle"   "asleep"  "any"     "be"      "bib"     "bath"    "bee"    
[11] "bathtub" "bed"     "a"       "apple"   "an"      "ant"     "ant"    

[[3]]
[1] "apple" "bead" 

[[4]]
 [1] "bathtub"    "asleep"     "bead"       "applesauce" "bead"       "bad"        "bicycle"    "balloon"   
 [9] "aunt"       "ate"        "big"        "because"    "being"      "bathtub"    "any"        "basket"    
[17] "be"         "aunty's"    "bad"        "baby+doll"  "and"        "aunty's"    "balloon"   

[[5]]
 [1] "belt"    "bathing" "belt"    "awake"   "big"     "bathtub" "all"     "bee"     "any"     "above"  
[11] "aunt"    "big"     "big"     "bench"   "a"       "and"     "bed"     "basket"  "aunty's" "bathtub"
[21] "awake"   "auntie" 

[[6]]
 [1] "been"    "bench"   "aunt"    "bed"     "baby"    "bee"     "banana"  "bathtub" "away"    "ain't"  
[11] "baa"     "ate"     "behind"  "aunty's" "because" "animal" 

[[7]]
 [1] "auntie"  "awake"   "been"    "been"    "behind"  "ate"     "bathtub" "an"      "bicycle" "ain't"  
[11] "being"   "a"       "balloon" "ate"     "beach"   "bathtub" "ball"    "banana"  "bad"     "awake"  

[[8]]
 [1] "bed"        "be"         "apple"      "bathtub"    "beach"      "beddy"      "been"       "balloon"   
 [9] "ankle"      "bath"       "belt"       "ball"       "bathing"    "a"          "applesauce" "bath"      
[17] "balloon"    "been"       "bath"       "beddy"      "basket"     "bead"       "bathtub"    "beddy"     
[25] "be"        

[[9]]
 [1] "baby"    "behind"  "bathtub" "baby"    "balloon" "bib"     "aunt"    "basket"  "away"    "bad"    
[11] "bicycle" "aunty's" "bat"     "bed"     "basket"  "and"     "bench"  

[[10]]
[1] "baby+doll" "bean"      "be"        "a"         "basket"   

[[11]]
[1] "bench"   "ain't"   "balloon" "beddy"   "bathing"

[[12]]
[1] "been"

[[13]]
 [1] "am"         "aunty's"    "applesauce" "animal"     "balloon"    "bat"        "baby"       "am"        
 [9] "behind"     "away"       "bicycle"    "ant"        "animal"     "aunt"       "been"       "auntie"    
[17] "bathing"    "been"       "bicycle"   

[[14]]
[1] "bicycle" "bed"    

[[15]]
 [1] "ant"        "big"        "bathing"    "bean"       "bathtub"    "belt"       "bead"       "a"         
 [9] "basket"     "aunt"       "ain't"      "asleep"     "an"         "applesauce" "ankle"      "be"        
[17] "an"         "all"        "baby"       "bean"       "all"       

[[16]]
 [1] "awake"   "big"     "beddy"   "be"      "above"   "animal"  "being"   "ball"    "banana"  "ball"   
[11] "because" "bee"     "ate"     "bathtub" "aunty's" "bicycle" "bad"     "any"     "baby"    "baby"   

[[17]]
[1] "bean"

[[18]]
 [1] "basket"     "away"       "basket"     "ankle"      "bib"        "bathing"    "bee"        "an"        
 [9] "baby+doll"  "baby"       "about"      "beach"      "and"        "bench"      "applesauce" "ate"       
[17] "bead"       "bicycle"    "ate"        "at"         "bath"       "baby+doll" 

[[19]]
[1] "bean"       "above"      "applesauce" "animal"     "behind"    

[[20]]
 [1] "animal"  "baby"    "belt"    "above"   "beach"   "be"      "because" "bathing" "bead"    "away"   
[11] "ain't"   "banana"  "ball"    "and"     "behind"  "behind"  "any"     "bench"   "animal"  "baby"   
[21] "above"   "above"   "bad"     "beddy"   "an"     

[[21]]
[1] "ball"    "baa"     "behind"  "being"   "bicycle" "bath"    "asleep"  "bench"   "aunty's"

[[22]]
[1] "be"     "ball"   "being"  "auntie" "about"  "away"   "bead"  

[[23]]
[1] "beddy"   "big"     "bathing" "ain't"  

[[24]]
character(0)

---------------------------------------------------------------------------------- 
Speaker: D
[[1]]
 [1] "aunt"       "bead"       "be"         "bee"        "baby+doll"  "because"    "applesauce" "ball"      
 [9] "ankle"      "baa"        "ankle"      "awake"      "beddy"      "because"    "am"         "balloon"   

[[2]]
[1] "and"    "bat"    "bad"    "baby"   "bead"   "auntie"

[[3]]
[1] "aunty's" "ant"     "ball"   

[[4]]
 [1] "bicycle" "an"      "bee"     "behind"  "ain't"   "bat"     "be"      "a"       "bib"     "all"    
[11] "ate"     "been"   

[[5]]
[1] "a"       "baby"    "bathing" "aunt"    "above"   "all"     "because" "am"      "at"     

[[6]]
[1] "apple"      "bathing"    "big"        "ankle"      "applesauce" "bee"        "bathtub"    "at"        

[[7]]
 [1] "beddy"   "ate"     "about"   "asleep"  "baa"     "ball"    "bed"     "above"   "bathtub" "bicycle"
[11] "above"  

[[8]]
 [1] "been"       "bead"       "away"       "bathing"    "above"      "applesauce" "bean"       "at"        
 [9] "ankle"      "ball"       "and"        "baa"        "animal"     "be"         "bathtub"    "bean"      
[17] "bathtub"    "bib"        "basket"    

[[9]]
[1] "baby+doll" "basket"    "animal"    "bead"      "ate"       "behind"    "aunty's"   "beach"    

[[10]]
 [1] "bean"    "bathtub" "above"   "big"     "ate"     "baby"    "big"     "ant"     "and"     "because"

[[11]]
[1] "aunty's" "balloon"

[[12]]
 [1] "baa"     "bathing" "auntie"  "at"      "bed"     "big"     "ankle"   "ankle"   "auntie"  "apple"  
[11] "baa"     "behind"  "bed"     "bean"    "because"

[[13]]
[1] "because" "bead"    "a"       "been"   

[[14]]
 [1] "bathtub"    "big"        "baa"        "bee"        "bean"       "beach"      "any"        "am"        
 [9] "ate"        "belt"       "a"          "been"       "aunty's"    "bad"        "auntie"     "bead"      
[17] "above"      "being"      "auntie"     "big"        "aunty's"    "bat"        "applesauce"

[[15]]
 [1] "bathtub"   "bathing"   "away"      "belt"      "an"        "bench"     "bean"      "behind"   
 [9] "been"      "ankle"     "basket"    "bicycle"   "baby+doll"

[[16]]
[1] "ankle"  "basket" "ball"   "auntie"

[[17]]
 [1] "bee"     "animal"  "away"    "ball"    "and"     "auntie"  "an"      "bad"     "at"      "and"    
[11] "baa"     "awake"   "at"      "bat"     "banana"  "been"    "ball"    "ankle"   "aunty's" "aunt"   
[21] "at"     

[[18]]
[1] "and"

[[19]]
 [1] "awake"   "bead"    "baa"     "big"     "bench"   "about"   "bathing" "balloon" "bat"     "balloon"
[11] "bee"     "animal"  "bathing" "ate"     "being"   "am"      "any"    

[[20]]
 [1] "auntie"     "bathing"    "ant"        "balloon"    "ball"       "at"         "applesauce" "baa"       
 [9] "bead"       "bed"        "auntie"     "bib"        "behind"     "bench"      "an"         "bathing"   
[17] "baby"       "asleep"     "and"        "am"         "been"       "bathtub"    "bathing"   

[[21]]
 [1] "basket"  "bead"    "bead"    "been"    "ball"    "ball"    "bicycle" "ate"     "ate"     "bad"    
[11] "basket"  "ball"    "auntie"  "apple"   "aunt"    "ankle"  

[[22]]
 [1] "above"      "bicycle"    "balloon"    "awake"      "ankle"      "bathing"    "ant"        "apple"     
 [9] "belt"       "being"      "an"         "bed"        "beach"      "applesauce" "all"        "aunty's"   
[17] "baa"       

[[23]]
[1] "belt"   "auntie" "bench"  "bib"   

[[24]]
 [1] "above"   "about"   "bean"    "because" "ankle"   "being"   "bee"     "bee"     "balloon" "be"     
[11] "baby"    "bicycle" "big"    

---------------------------------------------------------------------------------- 
Speaker: E
[[1]]
[1] "ate"       "ankle"     "bee"       "bed"       "baby+doll" "baa"       "apple"    

[[2]]
 [1] "bed"       "ball"      "bead"      "ate"       "baby+doll" "animal"    "bed"       "balloon"  
 [9] "auntie"    "apple"     "bathing"   "any"       "a"         "bean"      "auntie"    "being"    
[17] "auntie"    "bead"      "baa"       "ball"      "bat"       "away"     

[[3]]
[1] "apple"      "applesauce" "belt"       "behind"     "aunty's"    "and"        "been"      

[[4]]
 [1] "applesauce" "about"      "applesauce" "basket"     "ankle"      "about"      "bee"        "bath"      
 [9] "above"      "bathtub"    "balloon"    "balloon"    "basket"     "ankle"      "baby+doll"  "bench"     
[17] "auntie"     "any"        "aunt"       "bat"       

[[5]]
[1] "aunt"   "been"   "animal"

[[6]]
 [1] "and"       "beddy"     "and"       "be"        "and"       "ankle"     "ankle"     "bathtub"  
 [9] "ant"       "bee"       "bib"       "aunty's"   "about"     "bat"       "baby+doll" "ankle"    
[17] "belt"      "bath"      "beach"     "bib"       "asleep"    "baa"       "baby"      "baby+doll"

[[7]]
[1] "ant"    "auntie" "bee"   

[[8]]
[1] "bathtub" "all"     "auntie"  "baa"     "been"    "big"    

[[9]]
[1] "been"  "bee"   "all"   "being" "awake" "bee"   "ate"   "be"    "belt" 

[[10]]
 [1] "ankle"      "balloon"    "bathtub"    "away"       "all"        "baby"       "any"        "asleep"    
 [9] "bad"        "bean"       "bathing"    "balloon"    "baa"        "being"      "beddy"      "applesauce"
[17] "any"       

[[11]]
 [1] "aunt"   "an"     "at"     "any"    "behind" "am"     "auntie" "big"    "about"  "and"    "baby"  
[12] "awake" 

[[12]]
 [1] "bathing"   "baby+doll" "bench"     "balloon"   "big"       "belt"      "baby+doll" "bathing"  
 [9] "am"        "auntie"    "beach"     "awake"     "a"         "a"         "a"         "asleep"   
[17] "bad"       "ball"      "aunt"      "awake"    

[[13]]
 [1] "basket"  "ant"     "bathing" "basket"  "ankle"   "beddy"   "bead"    "bean"    "been"    "bead"   
[11] "auntie"  "am"      "and"     "at"      "ate"     "behind"  "bee"     "and"     "bed"     "because"
[21] "belt"   

[[14]]
 [1] "bench"     "bench"     "ant"       "bee"       "big"       "asleep"    "bat"       "bench"    
 [9] "auntie"    "being"     "baa"       "baby+doll" "above"     "balloon"   "bee"       "at"       
[17] "awake"     "being"    

[[15]]
 [1] "ball"    "bat"     "big"     "bathing" "animal"  "been"    "bead"    "belt"    "ball"    "be"     
[11] "all"     "balloon" "ant"     "belt"    "bib"    

[[16]]
 [1] "bead"    "and"     "bean"    "awake"   "ain't"   "all"     "baby"    "any"     "big"     "because"
[11] "balloon" "being"   "bee"     "bib"     "beach"   "about"   "any"     "being"   "a"       "bench"  
[21] "any"    

[[17]]
 [1] "bench"     "bib"       "bat"       "bicycle"   "bicycle"   "a"         "bicycle"   "ankle"    
 [9] "bat"       "above"     "ate"       "ain't"     "baby+doll" "ant"       "because"   "ankle"    

[[18]]
 [1] "at"     "an"     "be"     "bat"    "big"    "awake"  "bad"    "banana" "been"   "bead"   "bib"   

[[19]]
[1] "apple"  "ain't"  "bench"  "and"    "be"     "animal" "apple"  "all"   

[[20]]
 [1] "any"       "ain't"     "baby+doll" "ankle"     "above"     "because"   "bean"      "ate"      
 [9] "bad"       "aunty's"   "bee"       "aunty's"   "any"       "aunty's"   "balloon"   "be"       
[17] "big"       "above"     "bench"     "any"       "bench"     "be"        "bat"       "aunty's"  

[[21]]
 [1] "baa"        "bean"       "ankle"      "bad"        "bat"        "bean"       "been"       "a"         
 [9] "bee"        "be"         "apple"      "all"        "bee"        "bib"        "applesauce" "ball"      
[17] "ball"       "bathing"    "bath"       "a"         

[[22]]
 [1] "bath"       "been"       "applesauce" "bathing"    "aunty's"    "above"      "above"      "bicycle"   
 [9] "baa"        "belt"      

[[23]]
 [1] "bathing"    "am"         "am"         "applesauce" "bicycle"    "aunty's"    "and"        "animal"    
 [9] "beach"      "because"    "beach"      "asleep"     "an"         "banana"     "asleep"     "basket"    
[17] "at"         "being"      "ate"        "bench"      "a"          "auntie"     "and"        "bib"       

[[24]]
 [1] "belt"    "ant"     "ankle"   "bench"   "ball"    "balloon" "big"     "about"   "bad"     "and"    
[11] "basket"  "balloon" "at"      "bath"    "baa"     "bead"    "belt"    "an"      "bead"    "any"    
[21] "am"      "basket"  "ate"     "bib"     "baa"    
Run Code Online (Sandbox Code Playgroud)

数据:

set.seed(42)
df1 <- data.frame(months=rep(1:24, times=5, each=1),
                  vocab_size=(sample(c(0:25), 120, replace=TRUE)),
                  Speaker=rep(c("A", "B", "C", "D", "E"), times=1, each=24))

> dput(lexicon)
c("a", "about", "above", "ain't", "all", "am", "an", "and", "animal", 
"ankle", "ant", "any", "appl


Sti*_*ibu 5

您可以使用该dplyr包创建一个大数据框架,其中包含每个说话者和月份的单词,如下所示:

\n
 library(dplyr)\n word_list <- df1 %>%\n   group_by(months, Speaker) %>%\n   reframe(words = sample(lexicon[[1]], size = vocab_size, replace = TRUE))\n
Run Code Online (Sandbox Code Playgroud)\n

然后,您可以获得给定说话者和月份的单词,如下所示:

\n
filter(word_list, Speaker == "A", months == 17)\n## # A tibble: 8 \xc3\x97 3\n##   months Speaker words    \n##    <int> <chr>   <chr>    \n## 1     17 A       baby+doll\n## 2     17 A       any      \n## 3     17 A       been     \n## 4     17 A       aunt     \n## 5     17 A       baby     \n## 6     17 A       a        \n## 7     17 A       and      \n## 8     17 A       am \n
Run Code Online (Sandbox Code Playgroud)\n

如果您喜欢数据框列表,您可以轻松地从数据框创建它:

\n
word_list2 <- split(word_list, interaction(word_list$Speaker, word_list$months))\nword_list2[["A.17"]]\n## # A tibble: 8 \xc3\x97 3\n##   months Speaker words    \n##    <int> <chr>   <chr>    \n## 1     17 A       baby+doll\n## 2     17 A       any      \n## 3     17 A       been     \n## 4     17 A       aunt     \n## 5     17 A       baby     \n## 6     17 A       a        \n## 7     17 A       and      \n## 8     17 A       am \n
Run Code Online (Sandbox Code Playgroud)\n

如果你只想要单词,你可以按如下方式获取:

\n
word_list3 <- lapply(word_list2, getElement, "words")\nword_list3[["A.17"]]\n## [1] "baby+doll" "any"       "been"      "aunt"      "baby"      "a"         "and"       "am" \n
Run Code Online (Sandbox Code Playgroud)\n


And*_*erg 5

发生错误是因为在这种情况下slice_sample得到一个数字向量,但它只需要一个数字n。通过使用 来解决这个问题rowwise,它分别作用于每一行,因此slice_sample只能看到一个数字。

\n
library(dplyr)\n\ndf1 %>% \n  rowwise() %>% \n  mutate(all_vocab = list(slice_sample(lexicon, n=vocab_size))) %>% \n  ungroup()\n# A tibble: 120 \xc3\x97 4\n   months vocab_size Speaker all_vocab    \n    <int>      <int> <chr>   <list>       \n 1      1          1 A       <df [1 \xc3\x97 1]> \n 2      2         15 A       <df [15 \xc3\x97 1]>\n 3      3         18 A       <df [18 \xc3\x97 1]>\n 4      4         18 A       <df [18 \xc3\x97 1]>\n 5      5         24 A       <df [24 \xc3\x97 1]>\n 6      6          4 A       <df [4 \xc3\x97 1]> \n 7      7          3 A       <df [3 \xc3\x97 1]> \n 8      8         10 A       <df [10 \xc3\x97 1]>\n 9      9         24 A       <df [24 \xc3\x97 1]>\n10     10         19 A       <df [19 \xc3\x97 1]>\n# \xe2\x84\xb9 110 more rows\n# \xe2\x84\xb9 Use `print(n = ...)` to see more rows\n
Run Code Online (Sandbox Code Playgroud)\n