小编The*_*ell的帖子

如何使用变量在ggplot中指定列名

我有一个ggplot命令

ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )
Run Code Online (Sandbox Code Playgroud)

在一个函数内部.但我希望能够使用该函数的参数来挑选要用作颜色和组的列.即我想要这样的东西

f <- function( column ) {
    ...
    ggplot( rates.by.groups, aes(x=name, y=rate, colour= ??? , group=??? ) )
}
Run Code Online (Sandbox Code Playgroud)

因此ggplot中使用的列由参数确定.例如对于f("majr")我们得到了效果

ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )
Run Code Online (Sandbox Code Playgroud)

但对于f("性别"),我们得到了效果

  ggplot( rates.by.groups, aes(x=name, y=rate, colour=gender, group=gender) )
Run Code Online (Sandbox Code Playgroud)

我试过的一些事情:

ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ) )
Run Code Online (Sandbox Code Playgroud)

不工作.也没有

e <- environment() 
ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ), environment=e )
Run Code Online (Sandbox Code Playgroud)

r ggplot2 r-faq

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

在GitHub中,有没有办法在所有分支上查看所有(最近的)提交?

在GitHub中,有没有办法查看所有分支上的所有最近提交.反向时间顺序最好.

也许我是史努比,但我希望能够看到我的开发人员最近在做什么,至少在github上对存储库的提交方面.到目前为止,我见过的最接近的是网络图,这当然非常有用.

github

35
推荐指数
7
解决办法
3万
查看次数

如何在JavaScript中运行时表示闭包和作用域

这主要是一个好奇心问题.考虑以下功能

var closure ;
function f0() {
    var x = new BigObject() ;
    var y = 0 ;
    closure = function(){ return 7; } ;
}
function f1() {
    var x = BigObject() ;
    closure =  (function(y) { return function(){return y++;} ; })(0) ;
}
function f2() {
    var x = BigObject() ;
    var y = 0 ;
    closure = function(){ return y++ ; } ;
}
Run Code Online (Sandbox Code Playgroud)

在每种情况下,在执行函数之后,(我认为)无法到达x,因此BigObject可以被垃圾收集,只要x是对它的最后一个引用.只要评估函数表达式,一个简单的解释器就会捕获整个范围链.(首先,你需要这样做来调用eval工作 - 下面的例子).更智能的实现可能会在f0和f1中避免这种情况.更智能的实现将允许保留y,但不保留 …

javascript closures garbage-collection

32
推荐指数
2
解决办法
1635
查看次数

必须完全知道匿名函数的参数类型.(SLS 8.5)

我有一个函数文字

{case QualifiedType(preds, ty) =>
               t.ty = ty ;
               Some((emptyEqualityConstraintSet,preds)) }
Run Code Online (Sandbox Code Playgroud)

这会导致错误消息

missing parameter type for expanded function The argument types of an anonymous function
must be fully known. (SLS 8.5) Expected type was:
? => Option[(Typer.this.EqualityConstraintSet, Typer.this.TypeRelationSet)]
Run Code Online (Sandbox Code Playgroud)

我查看了SLS 8.5,但未找到解释.

如果我自己扩展功能

{(qt : QualifiedType) =>
  qt match {case QualifiedType(preds, ty) =>
               t.ty = ty ;
               Some((emptyEqualityConstraintSet,preds)) }}
Run Code Online (Sandbox Code Playgroud)

错误消失了.

(a)为什么这是一个错误?

(b)我该怎么做才能解决这个问题?

我尝试了明显的修复,即: QualifiedType在模式和=>之间添加,但这是一个语法错误.


我注意到的一件事是上下文有所不同.如果我使用函数literal作为声明为期望a的函数的参数QualifiedType => B,则没有错误.但是如果我将它用作期望a的函数的参数A => B,则会出现错误.我希望这里发生的事情是,由于模式可以想象应用于类型为QualifiedType的超类型的对象,编译器不愿意在不保证函数不会应用于的情况下分配明显的类型.任何不是QualifiedType的东西.我真正想要的是能够写出{QualifiedType( preds, ty) => ...} …

lambda scala function-literal pattern-matching

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

如何从Matlab中的公式中计算特定变量?

假设我有一个像这样的公式的列向量

N =

 4*k2 + 5*k3 + k1*x
 7*k2 + 8*k3 + k1*y
Run Code Online (Sandbox Code Playgroud)

和像这样的符号变量的列向量

k =

 k1
 k2
 k3
Run Code Online (Sandbox Code Playgroud)

公式相对于线性是线性的k.我想找到一个矩阵M,使得M*k等于N.

我可以这样做N/k.但是,这给了

[ (4*k2 + 5*k3 + k1*x)/k1, 0, 0]
[ (7*k2 + 8*k3 + k1*y)/k1, 0, 0]
Run Code Online (Sandbox Code Playgroud)

这是正确的,但不是我想要的.我想要的是矩阵

 x     4     5
 y     7     8
Run Code Online (Sandbox Code Playgroud)

在我看来,这是最简单的答案,因为它不涉及任何变量k.

我如何说服Matlab从公式或公式向量中分解出指定的变量?

matlab symbolic-math

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

有没有办法在Haxe中将类和方法声明为抽象?

在Haxe中有没有办法获得Java的抽象方法和抽象类?

我想要的是

// An abstract class.  (Written in a Java/Haxe hybrid.)
abstract class Process<A> {
    public function then<B>( f : A -> Process<B> ) : Process<B> {
        var a : A = go() ;
        return f(a) ;
    }

    abstract public function go( ) : A ;
} 

// A concrete class.
class UnitP<A> extends Process<A> {
    var _a : A ;

    public function new( a : A ) {
       _a = a ; }

    public override function go() : A …
Run Code Online (Sandbox Code Playgroud)

haxe

6
推荐指数
2
解决办法
1047
查看次数

JavaCC可以通过其上下文区分令牌吗?

基本要求是使用关键字作为标识符,所以我想区分令牌和它的上下文.(例如,class是一个关键字,但我们允许一个名为的变量class).

在Java中,这是可能的,但它是如此艰难,这里就是我如何做到这一点

TOKEN :
{
    <I_CAL:     "CAL">  : DO_CAL
    | <I_CALL:  "CALL">
    | <I_CMP:   "CMP">
    | <I_EXIT:  "EXIT">
    | <I_IN:    "IN">
    | <I_JMP:   "JMP">
    | <I_JPC:   "JPC">  : NEED_CMP_OP
    | <I_LD:    "LD">   : NEED_DATA_TYPE
    | <I_NOP:   "NOP">
    | <I_OUT:   "OUT">
    | <I_POP:   "POP">
    | <I_PUSH:  "PUSH">
    | <I_RET:   "RET">
    | <I_DATA:  "DATA"> : DO_DATA
    | <I_BLOCK:  ".BLOCK">
}

// T prefix for Token
TOKEN :
{
    <T_REGISTER : "R0" | "R1" | "R2" | …
Run Code Online (Sandbox Code Playgroud)

java compiler-construction javacc token

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

如何在 TypeScript 中指示路径不可达

我有一些基本上像这样的 Typescript 代码

if( ... ) 
   result  = $(document.createElement("div")) ;
} else if( ... ) {
    result  = $(document.createElement("div")) ;
} else {
    assert.unreachable( "Unknown label in buildHTML.") ;
}
result.attr( "data-childNumber", childNumber.toString() ) ; 
Run Code Online (Sandbox Code Playgroud)

的返回类型assert.unreachablenever

最后一行有一个错误显示“变量'结果'在被分配之前被使用。”

在我看来,never结果assert.unreachable应该告诉编译器没有离开该else部分的路径。

我知道我可以通过throw null;在 末尾添加来抑制错误else,但这似乎不雅。

的定义中也出现了类似的问题unreachable。它看起来像这样

export function unreachable( message? : string ) : never {
    if( message===undefined ) message = "Unreachable code reached." ;
    else message = …
Run Code Online (Sandbox Code Playgroud)

typescript

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

Scala编译器是否与UTF-8编码的源文件一起使用?

我有一个非常简单的Scala代码

 var str = "?"
 for( ch <- str ) { printf("%d, %x", ch.toInt, ch.toInt) ; println  }
 println
 str = "\u2264" ;
 for( ch <- str ) { printf("%d, %x", ch.toInt, ch.toInt) ; println }
Run Code Online (Sandbox Code Playgroud)

如果在您的浏览器上没有正确显示,则第一个字符串包含一个字符,在双引号之间,这是符号U + 2264的小于或等于.

该计划的产出

8218, 201a
226, e2
167, a7

8804, 2264
Run Code Online (Sandbox Code Playgroud)

显然,第一个字符串在运行时长度为3个字符,而不是源文件中的1个字符长.

源文件以UTF-8存储.十六进制转储显示它被正确编码,第一个字符串是22 E2 89 A4 22.我正在使用Eclipse和Eclipse的Scala插件.

  • scala编译器是否接受以UTF-8编码的输入文件?
  • 如果是这样,为什么我的程序产生意想不到的结果

scala

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

在 VHDL 中,如何最好地等待测试台中的时钟沿

写测试台的时候,写的有没有问题

wait for 1 ns ; wait until rising_edge( clock ) ;
Run Code Online (Sandbox Code Playgroud)

每次我想等待下一个上升沿?

我想将此序列放入一个过程中,然后始终使用它。

我想等待 1 ns 的原因是,如果我只有 swait until并且其中两个之间没有信号分配,它们将合并为一个。

时钟周期时间为 10ns,因此 1 ns 应该不成问题。我真正想做的是等待一个增量,但我不知道该怎么做。是否可以?

这种方法是否存在隐藏的陷阱?

我们使用 VHDL 93 和 ISIM 模拟器。

vhdl

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