小编Ina*_*Ina的帖子

仅包含选定列的数据框上的唯一

我有一个大于100列的数据框,我会通过只比较两列来找到唯一的行.我希望这是一个简单的,但我无法与它uniqueduplicated我自己合作.

在下面,我想只使用id和id2唯一:

data.frame(id=c(1,1,3),id2=c(1,1,4),somevalue=c("x","y","z"))

id id2 somevalue
1   1         x
1   1         y
3   4         z
Run Code Online (Sandbox Code Playgroud)

我想获得:

id id2 somevalue
1   1         x
3   4         z
Run Code Online (Sandbox Code Playgroud)

要么:

id id2 somevalue
1   1         y
3   4         z
Run Code Online (Sandbox Code Playgroud)

(我没有偏好保留哪些唯一行)

r unique

65
推荐指数
3
解决办法
9万
查看次数

在Java中有效地计算两个集合的交集?

在Java中查找两个非稀疏集合的交集大小的最有效方法是什么?这是一个我将大量调用大型集合的操作,因此优化很重要.我无法修改原始集.

我看过Apache Commons CollectionUtils.intersection,看起来很慢.我目前的方法是采用两组中较小的一组,克隆它,然后在两组中较大的一组上调用.retainAll.

public static int getIntersection(Set<Long> set1, Set<Long> set2) {
    boolean set1IsLarger = set1.size() > set2.size();
    Set<Long> cloneSet = new HashSet<Long>(set1IsLarger ? set2 : set1);
    cloneSet.retainAll(set1IsLarger ? set1 : set2);
    return cloneSet.size();
}
Run Code Online (Sandbox Code Playgroud)

java optimization performance set

55
推荐指数
4
解决办法
6万
查看次数

log4j:WARN没有为logger找到appender(运行jar文件,而不是web app)

首先 - 是的,我已经阅读了关于这个主题的多个问题和答案,并且无法获得帮助我的任何解决方案.我没有运行Tomcat或JBoss,我没有要更改的web.xml文件.我正在使用Java 6.0和log4j-1.2.8.jar

我正在使用IDEA IntelliJ创建一个可运行的jar文件,其中jar库单独打包并通过清单链接.我在linux服务器上运行我的代码,因此:

me@server:/mydir> java -jar code/myjar.jar
log4j:WARN No appenders could be found for logger (FactoredEventsForTrna).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)

我的log4j配置文件(我把它放在mydir和mydir/code中,以防万一)是:

## Logger configure file for myproject
log.dir=log/
datestamp=yyyy-MM-dd/HH:mm:ss.SSS
log4j.rootLogger=TRACE, file, proappender, console

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=1GB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=log/mydebug.log
log4j.appender.file.threshold=TRACE
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

log4j.appender.proappender=org.apache.log4j.RollingFileAppender
log4j.appender.proappender.maxFileSize=5GB
log4j.appender.proappender.Threshold=INFO
log4j.appender.proappender.File=log/myinfo.log
log4j.appender.proappender.layout=org.apache.log4j.PatternLayout
log4j.appender.proappender.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n
Run Code Online (Sandbox Code Playgroud)

我已经在mydir和mydir/code中创建了log /目录,以防万一.

有任何想法吗?

java log4j

53
推荐指数
3
解决办法
22万
查看次数

为什么更改列名需要花费很长时间才能使用大型data.frame?

我有一个data.frame拥有1900万行和90列的R.我有足够的备用RAM和CPU周期.似乎在此数据框中更改单个列名称对于R来说是一个非常激烈的操作.

system.time(colnames(my.df)[1] <- "foo")
   user  system elapsed 
 356.88   16.54  373.39 
Run Code Online (Sandbox Code Playgroud)

为什么会这样?每行都以某种方式存储列名吗?这会创建一个全新的数据框吗?看来这个操作应该在微不足道的时间内完成.我在R手册中没有看到任何明显的东西.

我正在Windows 7上运行构建7600的R(64位),在我当前的工作区中,在一个小数据上设置colnames.frame需要'0'时间system.time().

编辑:我知道使用的可能性data.table,老实说,我可以等5分钟完成重命名,同时我去喝茶.我感兴趣的是发生了什么以及为什么?

r dataframe data.table

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

使用jsrender模板嵌入脚本

我想使用我的jsrender模板中的变量来生成一段javascript,但我无法弄清楚如何<script type="text/javascript">在我的内部放置一个<script id="data-item-tpl" type="text/x-jsrender">

希望以下内容相当清楚.下面的代码产生了一个Uncaught SyntaxError.如果我从嵌入式脚本中删除标签,那么它只是作为文本打印到页面上.

在下面的代码中,我试图生成一个id为'chartId'的div,然后是一个脚本,它将通过MyChart对象用内容填充该div.

<script id="data-item-tpl" type="text/x-jsrender">
    <div class="item">
        <div class="graphs">
            <ul class="thumbnails">
                {{for graphs}}
                <li><div class="thumbnail"><img src="{{html:url}}" width="190" height="120" /><p>{{html:graphTitle}}<br />{{html:value}}</p></div></li>
                {{/for}}
                <!-- Here we insert both the placeholder for, and the javascript to populate charts -->
                <li><div id="{{html:chartId}}" style="width:120;height:190px;"></div></li>
                <script type="text/javascript">
                    var chartObj = new MyChart("{{html:chartId}}");
                    chartObj.render();
                </script>
            </ul>                           
        </div>
        ...
</script>
Run Code Online (Sandbox Code Playgroud)

javascript jsrender

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

将数字矩阵转换为data.table(或data.frame)

希望这里有一个简单的答案,但我无法在任何地方找到它.

我有一个标有行和列的数字矩阵:

     1    2    3    4
a    6    7    8    9
b    8    7    5    7
c    8    5    4    1
d    1    6    3    2
Run Code Online (Sandbox Code Playgroud)

我想要一个data.table(或我可以转换的data.frame)的形式:

    col     row    value
    1       a      6
    1       b      8
    1       c      8
    1       d      1
    2       a      7
    2       b      7
    2       c      5
    2       d      6
    ...
Run Code Online (Sandbox Code Playgroud)

任何提示赞赏.

r transformation reshape dataframe data.table

9
推荐指数
3
解决办法
4万
查看次数

使用双矩阵中的查找填充数据框中的新列

我有一个数据帧df:

colour  shape
'red'   circle
'blue'  square
'blue'  circle
'green' sphere
Run Code Online (Sandbox Code Playgroud)

还有一个带有命名行/列的双矩阵m

      circle square sphere  
red   1      4      7
blue  2      5      8
green 3      6      9
Run Code Online (Sandbox Code Playgroud)

我想为DF添加一个新列,以便我获得:

id  colour  shape
1   'red'   circle
5   'blue'  square
2   'blue'  circle
9   'green' sphere
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码执行此操作,但它似乎不起作用:

df$id <- m[df$colour,df$shape]
Run Code Online (Sandbox Code Playgroud)

我也试过apply(); 和类似但没有运气.没有人使用循环可以告诉我正确的方法吗?

r

8
推荐指数
2
解决办法
4555
查看次数

使用带有node.js的JQuery的错误

我在Windows 7上运行了全新的node.js安装,我正在尝试运行一个非常基本的JQuery脚本,命名为a.js:

require("jquery");
$().jquery;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会与JQuery一起运行,给我一个TypeError:

C:\Users\Ian>node a.js

C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:10
    window.XMLHttpRequest.prototype.withCredentials = false;
                         ^
TypeError: Cannot read property 'prototype' of undefined
    at create (C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:10:26)
    at C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:9435:18
    at Object.<anonymous> (C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:9437:2)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (C:\Users\Ian\a.js:1:63)
Run Code Online (Sandbox Code Playgroud)

我通过谷歌发现了一些有关此错误的错误报告,其中大部分都建议降级JQuery.但是,当我这样做时,我只会得到一个不同的错误.以下是JQuery 1.6.3:

C:\Users\Ian>node a.js

module.js:340
    throw err;
      ^
Error: Cannot find module 'location'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at create (C:\Users\Ian\node_modules\jquery\node-jquery.js:6:33)
    at C:\Users\Ian\node_modules\jquery\node-jquery.js:9065:18 …
Run Code Online (Sandbox Code Playgroud)

jquery node.js npm

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

如何管理R包中的数据库连接

我正在构建一个R包,其主要目的是消除处理专有数据库的痛苦,该数据库需要一些相当复杂的SQL查询才能获取数据.

因此,与Microsoft SQL Server的连接(由此获得odbcDriverConnect)是此包的一个不变且重要的部分,但我无法弄清楚如何最好地管理这个,我希望有关如何实现这一点的建议在R.

我目前的想法是:

  1. 让用户在调用任何函数之前确保他们具有有效的连接.然后每个函数都有connection一个必须传递的参数.这给用户带来了负担.

  2. 在每个函数中,每次调用get.connection()都会获得新的连接.然后允许旧连接自然超时,这似乎是一种草率的方法.

  3. 如上所述,但每次都返回相同的连接.这似乎不是一个可行的命题,因为我不能阻止连接通过R超时.autoReconnect=TRUE我在不同语言中使用的其他技巧似乎没有效果.

在Java中,我可能会有一个DatabaseConnectionPool,其中填充了许多连接,只需从中获取连接,并根据需要将它们返回到该池.当我指定时,我似乎也没有在Java中出现超时问题autoReconnect=TRUE.

任何建议非常感谢.

sql-server r rodbc

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

使用javax.xml的Java中的错误文件描述符IOException

我正在使用标准的javax.xml包来解析linux机器上的一些XML文件.我的代码如下:

try 
{
    // Prepare parser
    DocumentBuilder documentBuilder = documentBuilderFactory
        .newDocumentBuilder();
    Document document = documentBuilder.parse(file.getAbsolutePath()); // This is line 397
    XPath xPath = xPathFactory.newXPath();
    ...
}
catch(IOException e) { ... }
Run Code Online (Sandbox Code Playgroud)

单个DocumentBuilderFactory由多个线程访问,单个XPathFactory也是如此,我相信这是可接受的用法.使用上面的代码解析XML文件时,我偶尔会看到以下错误.

java.io.IOException: Bad file descriptor
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:229)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:229)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:246)
        at org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
        at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
        at mypackage.MyXmlParser.parseFile(MyXmlParser.java:397)
        at mypackage.MyXmlParser.access$500(MyXmlParser.java:51)
        at mypackage.MyXmlParser$1.call(MyXmlParser.java:337)
        at mypackage.MyXmlParser$1.call(MyXmlParser.java:328) …
Run Code Online (Sandbox Code Playgroud)

java xml linux file xml-parsing

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