我有一个大于100列的数据框,我会通过只比较两列来找到唯一的行.我希望这是一个简单的,但我无法与它unique或duplicated我自己合作.
在下面,我想只使用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)
(我没有偏好保留哪些唯一行)
在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) 首先 - 是的,我已经阅读了关于这个主题的多个问题和答案,并且无法获得帮助我的任何解决方案.我没有运行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 /目录,以防万一.
有任何想法吗?
我有一个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分钟完成重命名,同时我去喝茶.我感兴趣的是发生了什么以及为什么?
我想使用我的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) 希望这里有一个简单的答案,但我无法在任何地方找到它.
我有一个标有行和列的数字矩阵:
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)
任何提示赞赏.
我有一个数据帧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(); 和类似但没有运气.没有人使用循环可以告诉我正确的方法吗?
我在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) 我正在构建一个R包,其主要目的是消除处理专有数据库的痛苦,该数据库需要一些相当复杂的SQL查询才能获取数据.
因此,与Microsoft SQL Server的连接(由此获得odbcDriverConnect)是此包的一个不变且重要的部分,但我无法弄清楚如何最好地管理这个,我希望有关如何实现这一点的建议在R.
我目前的想法是:
让用户在调用任何函数之前确保他们具有有效的连接.然后每个函数都有connection一个必须传递的参数.这给用户带来了负担.
在每个函数中,每次调用get.connection()都会获得新的连接.然后允许旧连接自然超时,这似乎是一种草率的方法.
如上所述,但每次都返回相同的连接.这似乎不是一个可行的命题,因为我不能阻止连接通过R超时.autoReconnect=TRUE我在不同语言中使用的其他技巧似乎没有效果.
在Java中,我可能会有一个DatabaseConnectionPool,其中填充了许多连接,只需从中获取连接,并根据需要将它们返回到该池.当我指定时,我似乎也没有在Java中出现超时问题autoReconnect=TRUE.
任何建议非常感谢.
我正在使用标准的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) r ×5
java ×3
data.table ×2
dataframe ×2
file ×1
javascript ×1
jquery ×1
jsrender ×1
linux ×1
log4j ×1
node.js ×1
npm ×1
optimization ×1
performance ×1
reshape ×1
rodbc ×1
set ×1
sql-server ×1
unique ×1
xml ×1
xml-parsing ×1