我刚开始学习使用valgrind和--tool = memcheck
但我遇到的麻烦实际上是找到了问题.
例如
一个这样的问题是这个.
==12561== Conditional jump or move depends on uninitialised value(s)
==12561== at 0x425779: Server::HandleReceiveFrom(boost::system::error_code const&, unsigned long) (mUUID.h:63)
==12561== by 0x428EC4: boost::asio::detail::reactive_socket_recvfrom_op<boost::asio::mutable_buffers_1, boost::asio::ip::basic_endpoint<boost::asio::ip::udp>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, Server, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<Server*>, boost::arg<1> (*)(), boost::arg<2> (*)()> > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code, unsigned long) (mem_fn_template.hpp:280)
==12561== by 0x42E589: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:35)
==12561== by 0x42720C: Server::Run() (io_service.ipp:57)
==12561== by 0x42FB00: main (obbs.cpp:198)
Run Code Online (Sandbox Code Playgroud)
另一个是这个
== Use of uninitialised value of size 8
==12561== at 0x5E56091: _itoa_word (_itoa.c:196)
==12561== by 0x5E573D8: vfprintf …Run Code Online (Sandbox Code Playgroud) 我是R的新手.我想编写一份100万字的报纸文章.所以我想写一个网络刮刀从例如监护人的网站上检索报纸上的文章:http://www.guardian.co.uk/politics/2011/oct/31/nick-clegg-investment-new-jobs.
刮刀用于从一页开始,检索文章的正文,删除所有标签并将其保存到文本文件中.然后它应该通过本页面上的链接转到下一篇文章,获取文章等,直到该文件包含大约100万字.
不幸的是,我的刮刀并没有走得太远.
我使用readLines()来访问网站的源代码,现在想要获取代码中的相关行.
Guardian中的相关部分使用此ID来标记文章的正文:
<div id="article-body-blocks">
<p>
<a href="http://www.guardian.co.uk/politics/boris"
title="More from guardian.co.uk on Boris Johnson">Boris Johnson</a>,
the...a different approach."
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试使用grep和lookbehind的各种表达式来掌握这一部分 - 尝试获取此ID后面的行 - 但我认为它不适用于多行.至少我不能让它发挥作用.
有人可以帮忙吗?如果有人可以提供一些我可以继续工作的代码,那将是很棒的!
谢谢.
在 bash 中,我可以捕获SIGINT、SIGKILL、SIGTERM等。这使我可以根据程序意外停止的方式做不同的事情。
有没有办法在R中做到这一点?
我想我没有把事情联系好吗?
我想打电话给ABC.cpp哪些需求XYZ.h和XYZ.cpp.所有的都在我的当前目录下,我试着#include <XYZ.h>以及#include "XYZ.h".
$ g++ -I. -l. ABC.cpp在Ubuntu 10终端上运行给了我:
`/tmp/ccCneYzI.o: In function `ABC(double, double, unsigned long)':
ABC.cpp:(.text+0x93): undefined reference to `GetOneGaussianByBoxMuller()'
collect2: ld returned 1 exit status`
Run Code Online (Sandbox Code Playgroud)
这是ABC.cpp的摘要:
#include "XYZ.h"
#include <iostream>
#include <cmath>
using namespace std;
double ABC(double X, double Y, unsigned long Z)
{
...stuff...
}
int main()
{
...cin, ABC(cin), return, cout...
}
Run Code Online (Sandbox Code Playgroud)
这是XYZ.h:
#ifndef XYZ_H
#define XYZ_H
double GetOneGaussianByBoxMuller();
#endif
Run Code Online (Sandbox Code Playgroud)
这是XYZ.cpp:
#include "XYZ.h"
#include …Run Code Online (Sandbox Code Playgroud) 我认为使用xts对象添加点,图例和文本可以得到这个问题的答案,但显然不是......
require(quantmod)
getSymbols("SAM")
big.red.dot <- zoo(85, as.Date("2011-05-05"))
plot(SAM['2011'])
points( big.red.dot, col="red", pch=19, cex=5 )
Run Code Online (Sandbox Code Playgroud)
这个似乎直接来自教科书.?plot.zoo尽管不包含任何示例point().
如果我在数据集中有一个包含多个变量的列,我将如何创建这些虚拟变量.
示例:假设我有一个名为color的列:红色,绿色,黄色,蓝色,粉红色和灰色作为汽车颜色的选项.
将这些变量转化为因子的最佳方法是什么.没有手工创建一堆虚拟变量?
编辑:所以我做了Greg推荐的,这就是我所拥有的.我想知道NA输出,但不确定它为什么存在.
> data$Trim<-factor(data$Trim)
> data$Model<-factor(data$Model)
> data$Type<-factor(data$Type)
> data=cbind(Price,Mileage,Buick,Cadillac,Chevrolet,Pontiac,SAAB,Saturn,Model,Trim,Type,Cylinder,Liter,Doors,Cruise,Sound,Leather)
> fit <- lm( Price ~ Mileage+Buick+Cadillac+Chevrolet+Pontiac+SAAB+Saturn+Model+Trim+Type+Cylinder+Liter+Doors+Cruise+Sound+Leather, x=TRUE )
> summary(fit)
Run Code Online (Sandbox Code Playgroud)
然后我得到一条消息"系数:(21由于奇点而未定义)",对于某些变量,输出为NA.
我正在尝试RSRuby在Ubuntu 10.04 上安装.我几乎不知道要报告的相关错误消息是什么; 我一直在谷歌上搜索几个小时,没有一个命令我尝试解决问题.
以下是一些示例错误消息:
$ sudo gem install rsruby -- --with-R-dir=/usr/lib/R
Building native extensions. This could take a while...
ERROR: Error installing rsruby:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb --with-R-dir=/usr/lib/R
checking for main() in -lR... yes
checking for R.h... no
ERROR: Cannot find the R header, aborting.
Gem files will remain installed in /var/lib/gems/1.8/gems/rsruby-0.5.1.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/rsruby-0.5.1.1/ext/gem_make.out
Run Code Online (Sandbox Code Playgroud)
或者这样做apt-get:
$ sudo gem install rsruby --include-dependencies -- --with-R-dir=/usr/lib/R/lib64/R --with-R-lib=/usr/lib/R/lib64/R/bin --with-R-include=/usr/lib/R/lib64/R/include
INFO: …Run Code Online (Sandbox Code Playgroud) 做Sinatra 的入门.我收到此错误:
./sinatra.rb:5: undefined method `get' for main:Object (NoMethodError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from sinatra.rb:3
Run Code Online (Sandbox Code Playgroud)
谷歌搜索这些错误返回ruby LoadError:无法加载这样的文件,我没有看到它与之相关Sinatra.
不确定我需要分享哪些其他信息才能使我的问题更加清晰.那么告诉我应该运行哪些其他命令来清楚地解决问题.
更新:实际代码
# sinatra.rb
require 'rubygems'
require 'sinatra'
get '/' do
'hey girl'
end
Run Code Online (Sandbox Code Playgroud) 在Windows中,只有一个可以memory.size()获取当前R会话中的(对象)占用的内存总量.
还可以了解单个对象的大小,该大小print( object.size( thing ), units='auto')表示特定数据框/表占用多少兆字节/千字节.
但是如何做到相当于print( object.size( ---workspace--- ))?
循环for (thing in ls()) print( object.size( thing ), units='auto' )打印错误的输出,例如:
64 bytes
72 bytes
88 bytes
88 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
72 bytes
88 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes
64 bytes …Run Code Online (Sandbox Code Playgroud) 我想知道为什么as.factor函数在通过apply函数应用时不起作用R?
> df.nrow <- 10
> df <- data.frame(col1=sample(c("a","b","c"), df.nrow, TRUE),
+ col2=sample(c("d","e","f"), df.nrow, TRUE),
+ col3=sample(c("g","h","i"), df.nrow, TRUE))
> apply(df, 2, is.factor)
col1 col2 col3
FALSE FALSE FALSE
> df <- apply(df, 2, as.factor)
> apply(df, 2, is.factor)
col1 col2 col3
FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud) (我将在一秒钟内查看这个内容,但我希望在SO上发布答案,以便谷歌找到它并且下一个人不必浏览源代码.)
众所周知,递归函数在多次调用自身时会很慢.对此的一个解决方案是将先前的答案写入存储器,以便当重新计算的成本低于写入和回读的成本时可以重复使用它们.
的r factorial调用的r gamma,以及gamma来电的R .Primitive.这个原始的记忆是什么?
(我在数学意义上使用"字段"一词; R已经使用的基本字段/语料库包括实数和复数.)
我有兴趣允许其他一些基本字段/语料库(如F 5,它是基础5中的模运算).要做到这一点,我需要
+,*或许更多)那么,如何定义新的数据类型或重载运算符R呢?
我正在使用 httr 库中的 POST 函数来获取一些数据,代码如下所示。
library(httr)
url = "https://xxxx:xxx@api.xxx/_search" #omitted for privacy
a = POST(url,body = query,encode = "json")
Run Code Online (Sandbox Code Playgroud)
该查询显示在下面的附录中。a$content给了我一大堆十六进制数字,我必须使用另一个函数才能获得一些有用的数据。
最终我希望通过使用获得一个数据框b = fromJSON(a$content)。到目前为止,为了获取任何数据,我必须使用:
chr<-function(n){rawToChar(as.raw(n))}
b = jsonlite::fromJSON(chr(a$content))
data = b$hits$hits$`_source`
Run Code Online (Sandbox Code Playgroud)
考虑到我是通过本地函数解析数据以获得最终数据,这似乎效率低下。所以我的问题如下:
附录:
query = '
{
"_source": [
"start","source.country_codes",
"dest.country_codes"
],
"size": 100,
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": [
{
"range": {
"start": {
"lte": "2013-01-01T00:00:00"
}
}
},
{
"range": {
"start": {
"gt": "2016-05-19T00:00:00"
} …Run Code Online (Sandbox Code Playgroud) r ×10
linux ×3
c++ ×2
apply ×1
compilation ×1
gcc ×1
gem ×1
graphics ×1
httr ×1
include ×1
install ×1
jsonlite ×1
math ×1
model ×1
oop ×1
quantmod ×1
r-factor ×1
recursion ×1
ruby ×1
rubygems ×1
sigint ×1
sigterm ×1
sinatra ×1
ubuntu ×1
ubuntu-10.04 ×1
valgrind ×1
web-scraping ×1
xts ×1
zoo ×1