微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用lapply在R

如何解决使用lapply在R

我有一组代表5位演讲者的词汇知识的网络。每个发言人都被录制了多次,并且总共有93个网络,大小各不相同。我已经使用lapply()为93个网络中的每个网络生成了平均路径长度和平均度(k)的数据。该数据的摘要如下所示

 head(df1)

   # A tibble: 6 x 7
   Speaker   session path_length mean_k vocab_size subj_session
   <chr>   <dbl>           <dbl>  <dbl>       <int> <chr>       
 1 Alex       16            1.07    6.5          7 Alex_16     
 2 Alex       17            1.04    8.6          9 Alex_17     
 3 Alex       18            1.1     3.6          4 Alex_18     
 4 Alex       19            1.19   27.5         34 Alex_19     
 5 Alex       20            1.25   35.8         47 Alex_20     
 6 Alex       21            1.15   35.9         42 Alex_21  

我现在正尝试使用Watts-Strogatz方法基于这些真实数据生成随机小世界网络图。对于上面的小标题的第1行,我在igraph中执行此操作的代码sample_smallworld(1,7,6.5,0.05,loops = FALSE,multiple = FALSE),其中7是网络中的节点数,而6.5是平均度。有了这些数据后,我将使用mean_distance()来计算数据的平均路径长度。

我尝试使用lapply()在我的数据的93个项目中运行它:

 library(igraph)

 sample <- lapply(df1,FUN = function(element) {
   element <- as.data.frame(element)
   size <- element$vocab_size
   nei <- element$mean_k
   smallworldnetwork <- sample_smallworld(1,size,nei,multiple = FALSE)
   output <- mean_distance(smallworldnetwork,directed = F)
   })

但是,我收到以下错误消息:

sample_smallworld(1,size + 1,nei,0.05,循环= FALSE,多个= FALSE)中的错误: 在games.c:2963上:WS游戏:点阵大小至少应为1,值无效

我对lappy()并不陌生,因此代码可能只是一个错误,但是通过反复试验,我得到sample_smallworld()不会采用非数字值的印象邻里大小,我想不出办法解决这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。