小编Jak*_*ski的帖子

R - 如何使PCA双标签更具可读性

我有一组23个变量的观察结果.

当我使用prcomp和biplot绘制结果时,我遇到了几个问题:

  1. 实际绘图仅占据帧的一半(x <0),但绘图以0为中心,因此浪费了一半的空间

  2. 两个变量明显地支配着结果,因此所有其他箭头都聚集在一起,我无法读取一个东西

ad 1.我试过设置xlim和/或ylim,但我显然做错了,因为当我做的时候情节都搞砸了

ad 2.我可以以某种方式使箭头标签更加分开,以便我可以阅读它们吗?或者也许我可以只绘制没有两个最长的箭头(放大类型)?

我的PCA情节

附录:是否有可能让双标签以不同于箭头的颜色绘制标签?

另外:如果x和y轴不成比例,它是否有问题(它们的图表显示x和y上不同长度的间隔).我认为这会使箭头之间的天使产生偏差,而这种调整大小并不是一种相似性的转变.是否可以强制双色图保持1:1的宽高比,或者将图形绘制为矩形而不是正方形?

plot r pca

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

write.table不输出行名称的标题

我尝试在保留rownames的同时写出一个csv矩阵(参见r中的Export矩阵).

但是,当我使用write.table()执行此操作时,所有列都会向左移动(因此第一个数据列标题显示在rownames列上方).

"PC1","PC2","PC3","PC4"
"Murder",0.0417043206282872,-0.04482165626967,0.0798906594208106,-0.994921731246978
"Assault",0.995221281426497,-0.0587600278572231,-0.0675697350838042,0.03893829763516
"UrbanPop",0.0463357461197111,0.976857479909889,-0.200546287353865,-0.0581691430589317
"Rape",0.0751555005855469,0.200718066450337,0.974080592182492,0.0723250196376096
Run Code Online (Sandbox Code Playgroud)

我尝试了以下(手动添加额外的列):

merged.pca <- prcomp(USArrests)

write.table(merged.pca$rotation, file = "rotation.csv", sep = ",", col.names = c("rowname",colnames(merged.pca$rotation)))
Run Code Online (Sandbox Code Playgroud)

不幸的是,这失败了:

Error in write.table(merged.pca$rotation, file = "rotation.csv", sep = ",",  : 
  invalid 'col.names' specification
Run Code Online (Sandbox Code Playgroud)

TBH我不知道这个错误意味着什么.它是关于参数是列表而不是向量的东西吗?

r matrix

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

初始化按需持有者惯用线程安全,没有最终修饰符

我有一种预感,即使用持有者习惯用语而不将持有者字段声明为final是不是线程安全的(由于Java中的不变性方式).有人可以证实这一点(希望有一些消息来源)吗?

public class Something {
    private long answer = 1;

    private Something() {
         answer += 10;
         answer += 10;
    }

    public int getAnswer() {
      return answer;
    }

    private static class LazyHolder {
        // notice no final
        private static Something INSTANCE = new Something();
    }

    public static Something getInstance() {
        return LazyHolder.INSTANCE;
    }

}
Run Code Online (Sandbox Code Playgroud)

编辑:我绝对想要源语句,而不仅仅是"它有效"的断言 - 请解释/证明它是安全的

EDIT2:稍加修改以使我的观点更清楚 - 我可以确定getAnswer()方法将返回21而不管调用线程吗?

java singleton multithreading idioms immutability

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

方法引用原始类型有害吗?

下面的代码包含对Enum::name(通知无类型参数)的引用.

public static <T extends Enum<T>> ColumnType<T, String> enumColumn(Class<T> klazz) {
    return simpleColumn((row, label) -> valueOf(klazz, row.getString(label)), Enum::name);
}

public static <T, R> ColumnType<T, R> simpleColumn(BiFunction<JsonObject, String, T> readFromJson,
        Function<T, R> writeToDb) {
 // ...
}
Run Code Online (Sandbox Code Playgroud)

Javac在编译期间报告警告:

[WARNING]发现原始类型:java.lang.Enum缺少泛型类java.lang.Enum的类型参数

更改表达式会Enum<T>::name导致警告消失.

但是,Idea会在Enum<T>::name版本上标记以下警告:

可以推断出显式类型参数

反过来,Eclipse(ECJ)没有报告任何一种配方的任何问题.

这三种方法中哪一种是正确的?

一方面原始类型相当令人讨厌.如果你试图放一些其他的类型参数,例如 Enum<Clause>::name会导致编译失败,所以这是一些额外的保护.

另一方面,上面的引用等同于e -> e.name()lambda,这个公式不需要类型参数.

Enviorment:

  • Java 8u91
  • IDEA 15.0.3社区
  • ECJ 4.5.2

javac raw-types java-8 method-reference ecj

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

合并配置文件中的插件配置

我有一个exec-maven-plugin的配置条目

                    <configuration>
                        <executable>compass</executable>
                        <arguments>
                            <argument>compile</argument>
                            <argument>-c</argument>
                            <argument>config_production.rb</argument>
                            <argument>--force</argument>
                        </arguments>
                    </configuration>
Run Code Online (Sandbox Code Playgroud)

现在在配置文件中我想将此配置与以下内容合并:

                                <configuration>
                                    <arguments>
                                        <argument>compile</argument>
                                    </arguments>
                                </configuration>
Run Code Online (Sandbox Code Playgroud)

因为combine.children="merge"是默认我期望有效的配置是:

                    <configuration>
                        <executable>compass</executable>
                        <arguments>
                            <argument>compile</argument>
                        </arguments>
                    </configuration>
Run Code Online (Sandbox Code Playgroud)

但它与原始相同.

是什么赋予了?我试过设置 combine.children="merge"combine.self="override"无济于事.

Maven文档仅提到"子POM如何从父POM继承配置",但我希望从配置文件合并以相同的方式工作.

以上结果表明,从配置文件合并的工作方式不同 - 如何?

pom.xml maven maven-profiles

7
推荐指数
0
解决办法
1515
查看次数

logback-classic需要scanPeriod属性才能使auto-reload正常工作

这是logback经典中的错误还是我错过了什么?该文档非常明确scanPeriod地作为可选属性:

默认情况下,将每分钟扫描一次配置文件以进行更改.

但是,给出logback.xml如下文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" >           
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5p %c{1}:%L - %m%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>
    <root level="WARN">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我得到的logback以下输出和扫描并不能正常工作.

16:40:56,244 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
16:40:56,244 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
16:40:56,244 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/home/jbochenski/acme/acme-func-test/conf/logback.xml]
16:40:56,323 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of …
Run Code Online (Sandbox Code Playgroud)

logback

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

内容范围标头 - 允许的单位?

这与: 我应该如何在 RESTful Web 服务中实现 COUNT 动词?在 Rest 集合中进行分页 以及使用带有除字节之外的范围说明符的 HTTP 范围标头?

实际上我认为这里的 -1 评级 anwser 是正确的/sf/answers/100429101/

一般来说,答案说您可以使用引用 sec 3.12 的自定义单位

  range-unit       = bytes-unit | other-range-unit
  bytes-unit       = "bytes"
  other-range-unit = token
Run Code Online (Sandbox Code Playgroud)

然而,当您阅读 HTTP 规范时,请注意生产规则如下:

   Content-Range = "Content-Range" ":" content-range-spec
   content-range-spec      = byte-content-range-spec
   byte-content-range-spec = bytes-unit SP
                             byte-range-resp-spec "/"
                             ( instance-length | "*" )
Run Code Online (Sandbox Code Playgroud)

标头规范仅引用第 3.12 节中的字节单位,而不是范围单位,因此我认为实际上在这里使用自定义单位是违反规范的。

我错过了什么还是流行的答案错了?

编辑:由于这可能不清楚,我的问题的要点是:rfc2616 sec14.16 仅引用字节单位。它从未提及范围单元,因此范围单元的生成与内容范围无关,因此只能使用字节单元。

我认为这最好地解决了我的担忧,尽管我需要一些时间来理解它(而且我想确保措辞有问题)。

这反映了这样一个事实:显然,第一组语法规则是专门用于解析的,第二组是用于生成 HTTP 请求的

感谢埃尔加顿

api rest http

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

为什么日食无缘无故地占用了几乎所有的CPU

我试图在空闲时关注这个问题Eclipse中的高CPU使用情况,并找出Eclipse为什么会出现这样的CPU问题

以下是消耗两位数处理器份额的线程,有人可以理解它们吗?一个吃约80%的线程似乎与工作台有关,但其余的都是一个谜.

我确实有一个不错的proc和SSD驱动器,并且大部分时间eclipse运行顺利.

BTW.执行ps和kill之间有一个短暂的延迟,这可能解释了它,但我不明白等待线程如何使用超过50%的cpu.

"Worker-6" prio=10 tid=0x00007fe9e0036000 nid=0x1caf in Object.wait() [0x00007fe9c2269000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor) 16.8%
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00007fea3fa6d1a0> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
        - locked <0x00007fea3fa6d1a0> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)


"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=10 tid=0x00007fea94e3d800 nid=0x1ca1 in Object.wait() [0x00007fe9d65e4000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor) 57.4%
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00007fea39123a28> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
        - locked <0x00007fea39123a28> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Java indexing" daemon prio=10 tid=0x00007fea9510f000 nid=0x1c9d in Object.wait() [0x00007fe9fc7bf000] …
Run Code Online (Sandbox Code Playgroud)

java eclipse ubuntu multithreading dump

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

使用svn over ssh时,SCM Sensor因E170001而失败

由于声纳切换到使用SVNKit,我无法将责备分析用于使用工作副本svn+ssh.它失败了:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project example: Error when executing blame for file src/main/java/com/acme/Foo.java: svn: E170001: Authentication required for 'svn@svn+ssh://svn.acme.com' 
Run Code Online (Sandbox Code Playgroud)

svn从命令行调用时,该命令可正常工作,也可连接到ssh svn@svn.acme.com成功.我在Eclipse中使用SVNKit和这个存储库它也工作正常(虽然我不得不告诉它在哪里寻找私钥).

当我试图调试声纳转轮执行时,我看到私钥没有设置:

myPreviousAuthentication    SVNSSHAuthentication  (id=392)  
    myAgentProxy    null    
    myIsPartial false   
    myIsStorageAllowed  false   
    myKind  "svn.ssh" (id=387)  
    myPassphrase    null    
    myPassword  (id=608)    
    myPortNumber    -1  
    myPrivateKeyFile    null    
    myPrivateKeyValue   null    
    myURL   SVNURL  (id=345)    
    myUserName  "jbochenski" (id=610)   
myPreviousErrorMessage  SVNErrorMessage  (id=388)   
    dontShowErrorCode   false   
    myChildErrorMessage null    
    myErrorCode SVNErrorCode  (id=614)  
    myMessage   "Credentials rejected by SSH server." (id=613)  
    myObjects   Object[0]  (id=616) …
Run Code Online (Sandbox Code Playgroud)

ssh svnkit sonar-runner sonarqube sonarqube5.1

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

Sonar 报告的线路和分支覆盖范围与 Idea、Eclipse、Maven 和 Jenkins 不同

我的所有这些工具都报告了与 JaCoCo 相同的覆盖范围:69% 的线路覆盖率和 23% 的分支覆盖率。

注意:屏幕截图是在几天内拍摄的,因此它们的值略有不同,但差异 < 1%

詹金斯: 詹金斯

行家: 行家

蚀: 蚀

然而,声纳报告了不同的值:

声纳

Maven项目结构如下:

  • 主要(聚合器)
    • java模块
    • js(节点)模块

您可以看到 main 和 java 模块上报告的覆盖率相同,而 js 模块上没有覆盖率。

模块

我正在使用最新版本的jacocojacoco-maven-pluginSonar 的Java Plugin.

以下是相关的构建日志片段mvn sonar:sonar——所有这些似乎都按顺序排列:

$ egrep -i 'jacoco|\[warn]' consoleText
[WARN] [04:34:29.569] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[WARN] [04:34:29.576] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[WARN] [04:34:29.593] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should …
Run Code Online (Sandbox Code Playgroud)

java jacoco sonarqube sonarqube5.1 sonar-maven-plugin

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