igraph graph.data.frame默默地将因子转换为字符向量

转弯

今天,我了解到igraph静默地丢失了graph.data.frame上的因子,因此顶点数据帧中的因子被转换为字符向量。有没有办法保留因素类型,例如forV(g)$factor_vardf <- get.data.frame(g, what="vertices"); df$factor_var在以下代码中,genderfactor_var

actors <- data.frame(name=c("Alice", "Bob", "Cecil", "David", "Esmeralda"),
                     age=c(48,33,45,34,21),
                     gender=factor(c("F","M","F","M","F")))
relations <- data.frame(from=c("Bob", "Cecil", "Cecil", "David",
                               "David", "Esmeralda"),
                        to=c("Alice", "Bob", "Alice", "Alice", "Bob", "Alice"),
                        same.dept=c(FALSE,FALSE,TRUE,FALSE,FALSE,TRUE),
                        friendship=c(4,5,5,2,1,1), advice=c(4,5,5,4,2,3))
g <- graph.data.frame(relations, directed=TRUE, vertices=actors)
g_actors <- get.data.frame(g, what="vertices")

# Compare type of gender (before and after)
is.factor(actors$gender)
is.factor(g_actors$gender)

在此可重现的示例中,actors $ gender是一个因素,而g_actors $ gender不是。我认为应该如此。在文档中,我没有对此问题发表任何评论。

这一点很重要,因为通过导出get.data.frame用于线性回归的顶点会松散因子(线性回归会将因子转换为虚拟变量,但会忽略字符向量)。我注意到了,因为我的因子变量在输出中消失了。

当然,从igraph导出后,我可以重新创建因子,但是这很繁琐,因为我有很多图并且级别排序都是错误的(并且我不认为这是必要的,除非igraph无法在其整个图上支持这种行为。 C ++和python版本)。

瑞安

加伯·沙迪(Gabor Csardi)

是的,graph.data.frame

newval <- d[, i]
if (class(newval) == "factor") {
  newval <- as.character(newval)
}
attrs[[names(d)[i]]] <- newval

因此它将因子转换为字符。我不确定为什么,但是它一直存在着:https : //github.com/igraph/igraph/blame/c5849a89739c0dd058ff0a770aff2443745636fa/interfaces/R/igraph/R/structure.generators.R#L602

解决方法是,可以使用其他名称创建函数的副本,然后删除这三行。

如果您认为这是一个错误,那么也请在https://github.com/igraph/igraph/issues上打开一个问题,我将添加一个选项,它不太转换。我认为默认值仍然是转换,因为它已经存在很长时间了,人们可能会依赖它。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

等价于Python igraph中的R igraph graph_from_data_frame()函数?

来自分类Dev

igraph:将列表转换为顶点序列

来自分类Dev

将字符向量转换为具有最大行数限制的data.frame?

来自分类Dev

在igraph中使用write.graph输出.net文件

来自分类Dev

所有组合的igraph graph.lattice(在R中)

来自分类Dev

联合igraph-python的多个Graph对象,包括属性

来自分类Dev

将data.frame列转换为向量

来自分类Dev

将data.frame列从列表转换为向量

来自分类Dev

将命名向量转换为data.frame R

来自分类Dev

为什么PowerShell在测试长度上会默默地将字符串转换为object []?

来自分类Dev

将python-igraph图转换为networkx

来自分类Dev

将igraph邻接矩阵转换为numpy数组

来自分类Dev

iGraph R将边缘ID转换为顶点集

来自分类Dev

iGraph Python,将边列表转换为元组并添加

来自分类Dev

将长字符串转换为data.frame

来自分类Dev

将标记(S3:data.frame)转换为具有水平的因子

来自分类Dev

为什么Powershell默默地将具有一项的字符串数组转换为字符串

来自分类Dev

删除顶点在igraph向量上使用

来自分类Dev

python-igraph'模块'对象中的错误没有属性'Graph'

来自分类Dev

igraph-邻居作为子图-make_ego_graph()作为单个图

来自分类Dev

为什么igraph.Graph的方法既不能“点刺”又不能“莳萝”?

来自分类Dev

iGraph-具有graph.coreness的k核心低估了一些核心

来自分类Dev

使用data.table将字符串的因子变量转换为整数列表

来自分类Dev

将igraph用于R中的多个图形

来自分类Dev

将igraph对象布置为风扇[R]

来自分类Dev

为什么`join`和/或`JSON :: to_json`默默地将我的数据从整数转换为字符串?

来自分类Dev

如何将data.frame转换为R中的原子向量

来自分类Dev

如何将data.frame的列转换为数值向量

来自分类Dev

R - 将 Nx1 data.frame 转换为向量时的奇怪行为

Related 相关文章

  1. 1

    等价于Python igraph中的R igraph graph_from_data_frame()函数?

  2. 2

    igraph:将列表转换为顶点序列

  3. 3

    将字符向量转换为具有最大行数限制的data.frame?

  4. 4

    在igraph中使用write.graph输出.net文件

  5. 5

    所有组合的igraph graph.lattice(在R中)

  6. 6

    联合igraph-python的多个Graph对象,包括属性

  7. 7

    将data.frame列转换为向量

  8. 8

    将data.frame列从列表转换为向量

  9. 9

    将命名向量转换为data.frame R

  10. 10

    为什么PowerShell在测试长度上会默默地将字符串转换为object []?

  11. 11

    将python-igraph图转换为networkx

  12. 12

    将igraph邻接矩阵转换为numpy数组

  13. 13

    iGraph R将边缘ID转换为顶点集

  14. 14

    iGraph Python,将边列表转换为元组并添加

  15. 15

    将长字符串转换为data.frame

  16. 16

    将标记(S3:data.frame)转换为具有水平的因子

  17. 17

    为什么Powershell默默地将具有一项的字符串数组转换为字符串

  18. 18

    删除顶点在igraph向量上使用

  19. 19

    python-igraph'模块'对象中的错误没有属性'Graph'

  20. 20

    igraph-邻居作为子图-make_ego_graph()作为单个图

  21. 21

    为什么igraph.Graph的方法既不能“点刺”又不能“莳萝”?

  22. 22

    iGraph-具有graph.coreness的k核心低估了一些核心

  23. 23

    使用data.table将字符串的因子变量转换为整数列表

  24. 24

    将igraph用于R中的多个图形

  25. 25

    将igraph对象布置为风扇[R]

  26. 26

    为什么`join`和/或`JSON :: to_json`默默地将我的数据从整数转换为字符串?

  27. 27

    如何将data.frame转换为R中的原子向量

  28. 28

    如何将data.frame的列转换为数值向量

  29. 29

    R - 将 Nx1 data.frame 转换为向量时的奇怪行为

热门标签

归档