小编ipo*_*oga的帖子

R:来自矩阵的多个晶格水平图

我的目标是使用共享相同颜色键的4个或更多个别图来构建一个水平图(来自晶格包).虽然使用函数似乎相对简单,但我还是找不到使用数据矩阵的解决方案.仅使用一个矩阵的工作级别图的示例:

d <- replicate(10,rnorm(10))
levelplot(d)
Run Code Online (Sandbox Code Playgroud)

我找到了使用print和split的部分解决方案,以在同一个屏幕上显示所有4个关卡图,但这些要求我要么关闭colorkey,要么在每个绘图上显示它.两种方案都不完全令人满意.

如果我在levelplot中使用layout-option,就像这样:

levelplot(d, layout=c(2,2))
Run Code Online (Sandbox Code Playgroud)

,我得到了所需的布局,有一个大的colorkey,main和xlab/ylab,但只有一个levelplot打印.

我一直试图构建一个能产生所需结果的公式,但我担心我对数据帧,数组和矩阵的理解还不够深入.如果有人知道有效的解决方案,我将非常感激.我想象的是(不工作代码)的东西:

d1 <- replicate(10,rnorm(10))
d2 <- replicate(10,rnorm(10))
d3 <- replicate(10,rnorm(10))
d4 <- replicate(10,rnorm(10))

d <- list(d1,d2,d3,d4)
di <- c(1,2,3,4)

levelplot(x ~ y | di, data = d, layout=c(2,2))
Run Code Online (Sandbox Code Playgroud)

NB!避免使用矩阵不是一种选择.其中一些是从原始文本文件中获得的.

先感谢您,

-J.P

r matrix lattice levelplot

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

当equals(Object o)返回true时,使用contains(Object o)比较两个不同的对象将返回false

[下面的固定问题]

我有这门课:

Class Doc() {
  private String D;

  Doc(String d) {
    D = d;
  }

  @Override
  public boolean equals(Object o) {
    if (o instanceOf String) {
      if (o.equals(D)) return true;
      else return false;
    } else return false;
  }

  @Override
  public int hashCode() {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行测试,使用例如"abc"作为参数启动Doc()然后使用Doc().equals("abc")它返回true - 正如我所料.如果我使用:

ArrayList docs = new ArrayList<Doc>();
Doc d = new Doc("123");
Docs.add(d);
System.out.println(docs.contains("123"));
Run Code Online (Sandbox Code Playgroud)

它返回false,我不确定为什么.我已经尝试将输出添加到.equals()方法以检查它是否被使用,它是.这个代码hashCode()只是一些虚假(我知道我应该做一些正确的事,我只是不确定如何) - 但我只会使用equals().

不过,我读到的地方equals()也会检查hashCode(); 如果我在其中添加System.out.println(".")第一行 …

java contains equals arraylist

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

标签 统计

arraylist ×1

contains ×1

equals ×1

java ×1

lattice ×1

levelplot ×1

matrix ×1

r ×1