小编SOU*_*ser的帖子

组合两个图并在 R igraph 中添加边权重

我试图将两个具有相同节点的图组合在一起,但这样新的图边权重是两个原始图的总和(但当然希望解决方案扩展到 N 个图):

g1 <- graph.empty(directed=FALSE) + vertices(letters[1:2])
g1 <- g1 + edge("a", "b")
E(g1)$weight <- 1

g2 <- graph.empty(directed=FALSE) + vertices(letters[1:2])
g2 <- g2 + edge("a", "b")

E(g2)$weight <- 2

g3 <- g1 %u% g2

E(g3)$weight_1 #this is 1
E(g3)$weight_2 #this is 2
Run Code Online (Sandbox Code Playgroud)

但我希望 E(g3)$weight 为 3。

有没有比在边缘权重_1、_2、...之后求和更优雅的方法呢?简化/收缩的东西?

r igraph

5
推荐指数
1
解决办法
3284
查看次数

fs.createReadStream和.pipe()

我正在尝试使用request.post()Node.js中的请求包将大文件发布到另一台服务器,我得到:

(node) warning: Recursive process.nextTick detected. This will break in the next version    of node. Please use setImmediate for recursive deferral.

RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

我认为这是因为它是一个大文件(80MB),因为较小的文件工作正常,所以我现在正在尝试实现一个流:

var options = {
    url: aURLIHaveDefined,
    headers: {
        'User-Agent': 'MyRestAPI'
    },
    auth: {
        username: creds.username,
        password: creds.password
    },
    strictSSL: false,
    json: true
}

var readStream = fs.createReadStream(filePathIHaveDefined);

readStream.pipe(options);
Run Code Online (Sandbox Code Playgroud)

我收到错误:

TypeError: Object #<Object> has no method 'on'
Run Code Online (Sandbox Code Playgroud)

有没有人知道在管道中包含选项的语法以及为什么我收到此错误?

更新(在sousa评论之后): 我试过:

readStream.pipe(request(options));
readStream.on('end', function() {
     console.log('end of readStream'+fileName);
});
Run Code Online (Sandbox Code Playgroud)

它没有错误,但现在似乎也没有做任何事情.程序刚执行,我从未见过console.log()? …

httprequest node.js

4
推荐指数
1
解决办法
1万
查看次数

Javascript +运算符

在这些情况下,plus运算符的应用是什么?我已经看到它以这些方式使用,但看不到它是如何运作的.

start = +new Date;

+array[i]

+f.call(array, array[i], i)

x = +y
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
1
解决办法
106
查看次数

将 google 字体与 d3.js 和 SVG 结合使用

我正在尝试使用谷歌字体中的自定义字体:

<link href='http://fonts.googleapis.com/css?family=Karla|Quantico|Audiowide' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)

我已将它们与此 css 一起用于普通文本:

.customFont{
  font-family: 'Karla' ;
}

<h1 class="customFont"> My text </h1>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在 SVG 文本元素(例如图中的节点文本)中使用 d3.js 添加此字体时,它会删除我尝试添加到类中的所有其他样式:

.customFont {
  font-family: 'Karla' ;
  font-weight : bold;
  pointer-events: none;
  stroke:#fff;
  stroke-width:1px;
  fill-opacity: 1;
  fill: #000;
}
Run Code Online (Sandbox Code Playgroud)

它将字体系列更改为自定义 Karla,但不保留所有其他属性。如何获得一个类中的新字体和其他属性?

css svg d3.js

2
推荐指数
1
解决办法
8954
查看次数

R igraph迭代边缘列表并获得属性

我正在尝试编写一种有效的方法来打印出两组之间的边缘.问题是当我在下面的边缘迭代时,我似乎无法弄清楚如何从边缘获取任何信息,谢谢!

myG <- erdos.renyi.game(100, 10/100)

E(myG)$weight <- runif(ecount(myG))

V(myG)$group <- ifelse(runif(100)>0.5,1,2)
V(myG)$origIndex <- seq(1,vcount(myG))
V(myG)$label <- paste(sample(LETTERS,vcount(myG), replace=TRUE),     sample(LETTERS,vcount(myG), replace=TRUE),sample(LETTERS,vcount(myG), replace=TRUE),sep="-")

indices1 <- which(V(myG)$group == 1)
indices2 <- which(V(myG)$group == 2)
edgeIDsOfAllBetween <- myG[[indices1, indices2, edges=TRUE]]

uniqueEdgeIDs <- unique(unlist(edgeIDsOfAllBetween))
edgeList <- E(myG)[uniqueEdgeIDs] 
rows <- length(edgeList)

if(rows>0){
  for(r in 1:rows){

    edgeIndex <- edgeList[r]  #how to get the original index??
    weight <- get.edge.attribute(myG, "weight", index= edgeIndex)
    n1Index <- edgeList[r,1] #how to get the index of the first vertex????
    n2Index <- edgeList[r,2] #how …
Run Code Online (Sandbox Code Playgroud)

r igraph

2
推荐指数
1
解决办法
2264
查看次数

MongoDB嵌套了相同集合的集合查询

当您在下一个查询中需要相同集合的结果时,如何执行嵌套查询?

var mongo = require('../config/mongo');

var mongoDB = mongo.db;
...

exports.myFunction = function(req, res) {

...
...
// e.g. myArray = ['a','b','c'];

mongoDB.collection('MyCollection', function(err, collection) {
    collection.find({ $or: [{ 'source': {$in: myArray} },{ 'target': {$in: myArray} }]}, { "someVar": 0}).toArray(function(err, firstResults) {

            var allResults = [];
            for (var i = 0; i < firstResults.length; i++) {
                allResults[firstResults[i].source]=1;
                allResults[firstResults[i].target]=1;
            };

            var secondResults = Object.keys(allResults);

            mongoDB.collection('MyCollection', function(err, collection) {
                collection.find({ $or: [{ 'source': {$in: secondResults} },{ 'target': {$in: secondResults} }]}, { "someVar": …
Run Code Online (Sandbox Code Playgroud)

mongodb

0
推荐指数
1
解决办法
2022
查看次数

标签 统计

igraph ×2

r ×2

css ×1

d3.js ×1

httprequest ×1

javascript ×1

mongodb ×1

node.js ×1

svg ×1