给定如下数据框,有2个或更多因素:
data <- data.frame(V1=sample(c('A','B','C'), 50, T), V2=sample(c('X','Y'),50,T))
Run Code Online (Sandbox Code Playgroud)
我可以独立制作一个因子列表的条形图,例如:
library(lattice)
with(data, barchart(V1))
Run Code Online (Sandbox Code Playgroud)
如何根据第二个因子的值制作多面板图?我期望使用的语法是:
with(data, barchart(V1 | V2))
Run Code Online (Sandbox Code Playgroud)
但这会产生以下警告:
Warning message:
In Ops.factor(V1, V2) : | not meaningful for factors
Run Code Online (Sandbox Code Playgroud)
并没有有意义的输出.
我正在使用git并在Python中进行开发(尽管这显然与使用git管理的任何其他数据相关).我怎么告诉git我不想看到.pycpython中的所有文件git status?
来自Python文档:http://docs.python.org/library/stdtypes.html#comparisons
实施说明:除数字外的不同类型的对象按其类型名称排序; 不支持正确比较的相同类型的对象按其地址排序.
有没有理由选择这样做而不是提出例外?
我最近发现了Python非常有用的'-i'标志
-i : inspect interactively after running script, (also PYTHONINSPECT=x)
and force prompts, even if stdin does not appear to be a terminal
这是伟大的,在全球范围内检查的对象,但会发生什么,如果异常被函数调用中长大,我想检查函数的局部变量?当然,我对首次提出异常的范围感兴趣,有什么办法可以实现吗?
这有点困扰我一段时间了.在学习Python之前我学习了Haskell,所以我一直喜欢将许多计算作为映射到列表中.这是由列表理解精美表达的(我在这里给出了pythonic版本):
result = [ f(x) for x in list ]
Run Code Online (Sandbox Code Playgroud)
但在许多情况下,我们希望在x上执行多个语句,例如:
result = [ f(g(h(x))) for x in list ]
Run Code Online (Sandbox Code Playgroud)
这很快变得笨重,难以阅读.
我的正常解决方案是将其扩展回for循环:
result = []
for x in list:
x0 = h(x)
x1 = g(x0)
x2 = f(x1)
result.append(x2)
Run Code Online (Sandbox Code Playgroud)
关于这一点困扰我的一件事就是不得不初始化空列表'结果'.这是一个微不足道的事情,但它让我感到不快.我想知道是否有任何替代等效形式.一种方法可能是使用本地函数(这是他们在Python中调用的吗?)
def operation(x):
x0 = h(x)
x1 = g(x0)
x2 = f(x1)
return x2
result = [ operation(x) for x in list ]
Run Code Online (Sandbox Code Playgroud)
上述两种形式中的任何一种都有什么特别的优点/缺点吗?或者是否有更优雅的方式?