我试图在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) 我希望能够在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) 在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) 我刚刚完成了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?
我导入一些模块Foo并使用Foo该模块中定义的类.该类具有f调用g该模块Foo本身导入的另一个函数的函数module_with_g.我想在实例化时重新定义g该f用法的定义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) 我的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)