我如何使用R中的功能向数据框添加行

诠释

我想使用“ igraph”包从多个社区检测指标输出中创建一个数据框。但是,当我使函数执行此操作时,我只会得到返回的输出数据帧,原始数据帧未更改且仍然为空。我怎样才能做到这一点?

首先,我制作了一个空的数据框,其中包含3列,1个字符列和两个数字列。我想将每种算法的结果附加到此数据帧。我使用dplyr通过自制的“ maker”功能进行了尝试。

df_com_det_1 <- data.frame(algorithm=character(),groups=numeric(0)
                          ,mod=numeric(0),stringsAsFactors=FALSE)

maker <- function(dataframe, methodused){
  dataframe %>%
    summarise(algorithm = methodused$algorithm,
              groups = length(unique(methodused$membership)),
              mod = methodused$modularity) %>%
    bind_rows(dataframe, .)
}

maker(df_com_det_1, label_propagation_unweighted)

我希望在控制台中看不到任何输出,但是我确实希望看到更改后的df_com_det_1数据框,其中添加了以下行(现在仅在控制台中返回):

> maker(df_com_det_1, label_propagation_unweighted)
          algorithm groups       mod
1 label propagation      3 0.4534836

我怎样才能做到这一点?

调用函数时,不会将结果分配给任何东西。尝试

df_com_det_1<-maker(df_com_det_1,label_propagation_unweighted)

当使用数据框调用函数时,将在该函数内部的新环境中创建该数据框的副本,并且对该数据框所做的所有更改都不会反映在外部环境中。

有一种方法可以在一个函数内(使用<<-在全局环境中进行更改,但实际上并不建议这样做。更好的解决方案是按照我上面的建议进行操作,然后将函数的结果简单地分配回数据框中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章