小编Leo*_*sar的帖子

R用ggplot绘制置信区间

我想为一个配有这样的gls的模型创建一个置信带:

require(ggplot2)
require(nlme)

mp <-data.frame(year=c(1990:2010))

mp$wav <- rnorm(nrow(mp))*cos(2*pi*mp$year)+2*sin(rnorm(nrow(mp)*pi*mp$wav))+5
mp$wow <- rnorm(nrow(mp))*mp$wav+rnorm(nrow(mp))*mp$wav^3

m01 <- gls(wow~poly(wav,3), data=mp, correlation = corARMA(p=1))

mp$fit <- as.numeric(fitted(m01))

p <- ggplot(mp, aes(year, wow))+ geom_point()+ geom_line(aes(year,fit))
p
Run Code Online (Sandbox Code Playgroud)

这只绘制了拟合值和数据,我希望有一些风格

p <- ggplot(mp, aes(year, wow))+ geom_point()+ geom_smooth()
p
Run Code Online (Sandbox Code Playgroud)

但是使用gls模型生成的波段.

谢谢!

r ggplot2

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

使用pandoc从Markdown转换为PDF时设置双倍行距和行号

我正在使用markdown和pandoc进行科学写作,我知道我可以使用改变最终pdf的边距

使用pandoc从Markdown转换为PDF时设置边距大小

但是,在提交的手稿中,期刊通常需要双行和行号,问题是如何改变这些,我对LaTex知之甚少,所以我迷失在丛林中.

谢谢!

markdown latex pandoc

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

更快的降低光栅R分辨率的功能

我正在使用光栅包来降低大栅格的分辨率,使用像这样的函数聚合

require(raster)    
x <- matrix(rpois(1000000, 2),1000)

a <-raster(x)
plot(a)

agg.fun <- function(x,...) 
    if(sum(x)==0){
        return(NA)
    } else {
        which.max(table(x))
    }

a1<-aggregate(a,fact=10,fun=agg.fun)
plot(a1)
Run Code Online (Sandbox Code Playgroud)

我必须聚合的光栅图像大得多34000x34000所以我想知道是否有更快的方法来实现agg.fun函数.

aggregate r raster r-raster

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

置换data.frame R中的组

我有一个像这样的data.frame:

DqStr <- "Group   q        Dq       SD.Dq
1 -3.0 0.7351 0.0067
1 -2.5 0.6995 0.0078
1 -2.0 0.6538 0.0093
2 -3.0 0.7203 0.0081
2 -2.5 0.6829 0.0094
2 -2.0 0.6350 0.0112"
Dq1 <- read.table(textConnection(DqStr), header=TRUE)
Run Code Online (Sandbox Code Playgroud)

我想随机化组成员身份,但仅限于具有相同Dq1 $ q值的行

g <-unique(Dq1$q)
Dq2<- data.frame()
for(n in g)
{
  Dqq <- Dq1[Dq1$q==n,]
  Dqq$Group <-sample(Dqq$Group)
  Dq2 <- rbind(Dq2,Dqq)    
}
Run Code Online (Sandbox Code Playgroud)

这也可以通过plyr来完成

library(plyr)
ddply(Dq1,.(q), function(x) { x$Group <- sample(x$Group)
                              data.frame(x)})
Run Code Online (Sandbox Code Playgroud)

因为我必须重复这几千次,我想知道是否有更好(更快)的方法来做到这一点.

r sample permutation

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

C++ 将 ostream 运算符作为朋友重载会导致错误:变量在此上下文中是私有的

我无法捕捉到这个错误,它一定很容易。我有一个头文件(snim.h):

#ifndef SNIM_CLASS_HH_
#define SNIM_CLASS_HH_

#include <iostream>

namespace snim {

class SnimModel {

    int communitySize;           // Total size of the community


public:
  SnimModel(int c) : communitySize(c) {};

  friend std::ostream& operator<<(std::ostream&,  const SnimModel&);
};


} /* end namespace */

#endif
Run Code Online (Sandbox Code Playgroud)

和一个实现文件:

#include "snim.h"

using namespace snim; 


std::ostream& operator<<(std::ostream& os, const SnimModel& s) {

  os << "[Total Size]\n[";
  os << s.communitySize << "]\n";

  return os;
};
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试编译它时

 In function ‘std::ostream& operator<<(std::ostream&, const snim::SnimModel&)’:

 snim.cpp:9:11: error: ‘int snim::SnimModel::communitySize’ is private within this context …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

r ×3

aggregate ×1

c++ ×1

ggplot2 ×1

latex ×1

markdown ×1

pandoc ×1

permutation ×1

r-raster ×1

raster ×1

sample ×1