小编bou*_*472的帖子

如何使用某些列名的字符向量在data.table中选择列?

我试图在data.table中选择那些名称出现在我的角色向量中的列.该操作在纯data.frame中工作,但在data.table中不起作用.这是一个可重复的例子.

> names(mtcars)
 [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
[11] "carb"
> myVector <- c('disp', 'hp', 'wt')
> head(mtcars[, myVector])
                  disp  hp    wt
Mazda RX4          160 110 2.620
Mazda RX4 Wag      160 110 2.875
Datsun 710         108  93 2.320
Hornet 4 Drive     258 110 3.215
Hornet Sportabout  360 175 3.440
Valiant            225 105 3.460
Run Code Online (Sandbox Code Playgroud)

我刚刚制作了一个包含disp,, hp和的矢量,并且wt我使用该矢量在我的data.frame中选择了相应的列.现在让我们从data.frame中创建一个data.table对象,并尝试执行相同的操作.

> library(data.table)
> mtcarsDT <- data.table(mtcars)
> mtcarsDT[, myVector]
[1] "disp" "hp"   "wt"  
Run Code Online (Sandbox Code Playgroud)

r data.table

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

如何生成随机图?

我希望能够在Java中生成随机,无向和连接的图形.另外,我希望能够控制图中的最大顶点数.我不确定解决这个问题的最佳方法是什么,但这里有一些我能想到的:

(1)在0和之间生成一个数字,n并将其作为顶点数.然后,以某种方式将顶点随机链接在一起(可能每个顶点生成一个随机数,并将其作为从所述顶点出来的边数).从任意顶点开始遍历图形(比如使用广度优先搜索)并让我们的随机图G形成所有被访问的节点(这样,我们确保G连接).

(2)生成一个边长在(和某种程度上)之间的随机方阵(0's和1's ).这将是我们图形的邻接矩阵(矩阵的对角线应该是全部或全部的).从图形中创建数据结构并从任何节点遍历图形以获得连接的节点列表并调用该图形.0n10G

任何其他生成足够随机图的方法都受到欢迎.注意:我不需要纯随机图,即,您生成的图不必具有任何特殊的数学属性(如某种统一性).我只需要大量的图表来测试其他东西.

这是Node我正在使用的Java 类:

public class Node<T> {
    T data;
    ArrayList<Node> children= new ArrayList<Node>();
    ...}
Run Code Online (Sandbox Code Playgroud)

这是Graph我正在使用的类(你可以告诉我为什么我现在只对连接图感兴趣):

public class Graph {
    Node mainNode;
    ArrayList<Node> V= new ArrayList<Node>();

    public Graph(Node node){
        mainNode= node;
    }
    ...}
Run Code Online (Sandbox Code Playgroud)

例如,这就是我现在为测试目的制作图表的方法:

    //The following makes a "kite" graph G (with "a" as the main node).
    /*     a-b
           |/|
           c-d
    */
    Node<String> a= …
Run Code Online (Sandbox Code Playgroud)

java random algorithm graph

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

在Hive中使用带有表的所有列的named_struct函数.

在Hive中,您可以使用函数named_struct来创建键值对列表; 键通常是列名,值是相应列中的值.例如,

$hive> select id, named_struct('foo', name, 'address', address) as list from users;
id list
1  {'foo':'Alice', 'address':'Wonderland'}
2  {'foo':'Bob', 'address':'Portland'}
...
Run Code Online (Sandbox Code Playgroud)

但是,为了制作列表,我需要明确地编写每个列名.有没有办法避免使用其中任何一个named_struct或其他类似功能?

我希望能够写出类似的东西(假设users只有三列).

$hive> select id, named_struct(*) as list from users;
Run Code Online (Sandbox Code Playgroud)

hadoop hive

7
推荐指数
1
解决办法
5066
查看次数

用Java可视化Conway的生活游戏(可能使用GUI)?

我刚刚完成了Conway的生命游戏的实施.我想知道什么是可视化世代进步的好方法.到目前为止,我有一个简单的打印声明:

        System.out.println();
        for (int j= 0; j < n; j++){
            for (int k= 0; k < n; k++){
                System.out.print(board[j][k] + "\t");
            }
            System.out.print("\n");
        }
Run Code Online (Sandbox Code Playgroud)

这可以用于测试,但我真的希望看到一些复杂的结构.我的问题是:我应该如何推进可视化?也许我可以构建某种GUI(虽然我还没有这样做).

以下是我如何构建算法的一般概念:

    int i= 0;
    while (i < 3){
        int[][] temp= board;
        for (int j= 0; j < n; j++){
            for (int k= 0; k < n; k++){
                //Update temp array according to Conway's rules. 
            }
        }
        board= temp;
        i++;
        //Print statements
    }
Run Code Online (Sandbox Code Playgroud)

所以,我的确切问题是:如何构建一个GUI?

java user-interface

3
推荐指数
1
解决办法
5431
查看次数

如何重新定义我在python中导入的函数使用的函数?

我导入一些模块Foo并使用Foo该模块中定义的类.该类具有f调用g该模块Foo本身导入的另一个函数的函数module_with_g.我想在实例化时重新定义gf用法的定义Foo.这里有3个文件显示了这种情况.

Foo.py

from module_with_g import g

class Foo:
    def f(self):
        x = 'bar'
        g(x)
Run Code Online (Sandbox Code Playgroud)

module_with_g.py

def g(x):
    print(x + x)
Run Code Online (Sandbox Code Playgroud)

module_with_modified_Foo_f.py

import Foo

def new_g(x):
    print(x + x + x)

if __name__ == '__main__':
    foo =  Foo.Foo()
    foo.f()
Run Code Online (Sandbox Code Playgroud)

运行最后一个脚本给出barbar.我想要的是让我们foo.f使用自己的功能而不是它g,我希望得到它barbarbar.

我自己的尝试是尝试使用装饰器以某种方式重新定义foo.f,但我没有任何运气.

module_with_modified_Foo_f.py

import Foo

def new_g(x):
    print(x + x + x)

def redefine_f(f): …
Run Code Online (Sandbox Code Playgroud)

python decorator python-import python-3.x

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

Python 的 unittest 没有按预期初始化记录器

我的unittest模块在测试我的主文件时中断,因为我的主文件引用了一个未初始化的记录器。

我们有以下简单的例子。

logger_main.py:

import logging

def some_func():
    logger.info(__name__ + " started ")
    # Do something
    logger.info(__name__ + " finished ")
    return 1

if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger(__name__)
    some_func()
Run Code Online (Sandbox Code Playgroud)

logger_main_tests.py:

import unittest
import logging
from logger_main import some_func

class Test(unittest.TestCase):
    def setUp(self):
        logging.basicConfig(level=logging.DEBUG)
        logger = logging.getLogger(__name__)

    def testName(self):
        self.assertEqual(some_func(), 1)

if __name__ == "__main__":
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

logger_main.py 按预期运行,但是,logger_main_tests.py 出现以下错误。

Finding files... done.
Importing test modules ... done.

======================================================================
ERROR: testName (logger_main_tests.Test)
----------------------------------------------------------------------
Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python logging

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