小编use*_*119的帖子

如何在R中保存绘图图像?

我用非常大的矢量(大小为10 ^ 7)创建了一个图.将绘图保存为pdf文件的常用方法的问题是pdf文件是一个大约10MB的非常大的文件.对于简单的时间序列图,我不想要这么大的尺寸.如何保存图表,使得尺寸足够小,最多可达100千字节?

plot r save

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

更快地根据R中的列汇总变量

我希望根据列总结我的数据框中的一些变量.但是我的数据框相当大(> 30,000,000行),并且使用dplyr中的汇总函数需要很长时间才能运行.R中是否有更快的方法来加速汇总过程?

我有一个格式的数据框df:

  proid  X1  X2  X3 X4
1     1  zz   a   e  a
2     2  ff   g   z  b
3     1  cd   s   f  d 
4     3  ab   t   e  e
5     2  ta   b   h  k
      ....
Run Code Online (Sandbox Code Playgroud)

我希望在它们具有相同的prodid值时连接变量X1到X4.连接的字符串用逗号分隔.所以上面的表应该给我新表:

  proid     X1   X2   X3  X4
1     1  zz,cd  a,s  e,f a,d 
2     2  ff,ta  g,b  z,h b,k
3     3     ab    t    e   e
      ....
Run Code Online (Sandbox Code Playgroud)

我使用了以下dplyr代码:

concat <- function(x){
  x <- na.omit(x)
  if(length(x)==0){
    return(as.character(NA))
  }else{
    return(paste(x,collapse=","))
  }
}

dg<-group_by(df,proid)
df<-summarise(dg,proid,concat(X1),concat(X2),concat(X3),concat(X4))
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

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

为什么malloc在全局命名空间中?

根据我的理解,引入C++ C++版本(例如stdlib.h(cstdlib))的原因之一是全局命名空间不会受到污染.

但事实证明,malloc即使我没有,我也可以在全局命名空间中使用#include <stdlib.h>.

那么我为什么要#include <cstdlib>使用std::malloc呢?

(我正在使用g ++版本4.8.2)

c++ language-lawyer

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

为什么我的C++代码比R慢得多?

我在R和C++中编写了以下代码,它们执行相同的算法:

a)模拟随机变量X 500次.(X值为0.9,概率为0.5,1.1值为0.5)

b)将这500个模拟值相乘得到一个值.将该值保存在容器中

c)重复10000000次,使容器具有10000000个值

R:

ptm <- proc.time()
steps <- 500
MCsize <- 10000000
a <- rbinom(MCsize,steps,0.5)
b <- rep(500,times=MCsize) - a
result <- rep(1.1,times=MCsize)^a*rep(0.9,times=MCsize)^b
proc.time()-ptm
Run Code Online (Sandbox Code Playgroud)

C++

#include <numeric>
#include <vector>
#include <iostream>
#include <random>
#include <thread>
#include <mutex>
#include <cmath>
#include <algorithm>
#include <chrono>

const size_t MCsize = 10000000;
std::mutex mutex1;
std::mutex mutex2;
unsigned seed_;
std::vector<double> cache;

void generatereturns(size_t steps, int RUNS){
    mutex2.lock();
    // setting seed
    try{    
        std::mt19937 tmpgenerator(seed_);
        seed_ = tmpgenerator();
        std::cout << "SEED : " << …
Run Code Online (Sandbox Code Playgroud)

c++ r

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

当我尝试从嵌套类访问外部类的成员数据时,为什么会出现分段错误?

我有一个类Outer和一个嵌套类Inner.Inner有一个方法'print',它试图访问类Outer的数据成员.代码编译得很好,但是当我尝试运行程序时出现了分段错误错误.

#include <iostream>

class Outer{
public:
  Outer();
  ~Outer();

  class Inner{
  public:
    Inner(Outer *parent){}
    void print(){std::cout<< parent-> data <<std::endl;}
  private:
    Outer *parent;
  };
  Inner *obj;

private:
  int data;
};

Outer::Outer(): data(99), obj(new Inner(this)){}
Outer::~Outer(){delete obj;}

int main(){
  Outer outer;
  outer.obj->print();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不确定是什么问题,因为我已经将'this'指针传递给内部对象.

代码使用c ++ 11标志用g ++ 4.8.2编译.

c++ nested-class

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

Python打印额外的内容

为什么以下代码最后打印"无"?

class Square:
  def printx(self):
    print "A"

test = Square()
print test.printx()
Run Code Online (Sandbox Code Playgroud)

输出:

A
None
Run Code Online (Sandbox Code Playgroud)

为什么不只打印字母"A"?

python

-1
推荐指数
2
解决办法
50
查看次数

标签 统计

c++ ×3

r ×3

data.table ×1

dplyr ×1

language-lawyer ×1

nested-class ×1

plot ×1

python ×1

save ×1