小编Ama*_*eur的帖子

如何模拟双峰分布?

我有以下代码来生成双峰分布,但是当我绘制直方图时.我没有看到2种模式.我想知道我的代码是否有问题.

mu1 <- log(1)   
mu2 <- log(10)
sig1 <- log(3)
sig2 <- log(3)
cpct <- 0.4   

bimodalDistFunc <- function (n,cpct, mu1, mu2, sig1, sig2) {
  y0 <- rlnorm(n,mean=mu1, sd = sig1)
  y1 <- rlnorm(n,mean=mu2, sd = sig2)

  flag <- rbinom(n,size=1,prob=cpct)
  y <- y0*(1 - flag) + y1*flag 
}

bimodalData <- bimodalDistFunc(n=100,cpct,mu1,mu2, sig1,sig2)
hist(log(bimodalData))
Run Code Online (Sandbox Code Playgroud)

statistics r distribution probability

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

使scale_y_log10的标记为0.01,0.1,1

我编写了以下代码来制作情节

pd<- position_dodge(.2)  # # move them .05 to the left and right
pm25 <- ggplot(data, aes(x=CombSEG, y=conc,shape=A,color=A, lty=A,     group=A)) + 
geom_point() +
geom_line() +
geom_errorbar(aes(ymin=conc-se, ymax=conc+se),
              width=.1, position=pd) +
theme_bw()+
limits(c(0
scale_y_log10(breaks=c(0.01,0.1,1),labels=c(0.01,0.1,1))
Run Code Online (Sandbox Code Playgroud)

自动刻度尺为10 ^ -1.8,10 ^ -1.6,10 ^ -1.4 ... 10 ^ -0.4.我真的希望最低刻度为0.01,最高刻度为1.

谢谢您的帮助.

编辑:这是我尝试你的代码后情节的样子. 在此输入图像描述

r ggplot2

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

如何在R中的标绘标签中写出每立方米的微米平方

我想label在ggplot的情节中写微米平方/立方米,当我添加m ^ 2时出现错误.第一个表达式还可以,但它缺少^ 2.我尝试添加m ^ 2不起作用,因为我没有看到上标.

  1. ylab (expression(paste("Surface area concentration (",mu,"m/",m^3,")", sep="")))

  2. ylab (expression(paste("Surface area concentration (",mu,",m^2,"/,m^3,")", sep="")))

谢谢

r ggplot2

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

ggplot2:如何手动调整scale_area

我制作了2个名为beta和km的气泡图.我想并排比较这些图,但scale_area似乎不同,这使得很难根据气泡的大小在视觉上比较2个图.

如果您在下面的图中注意到图例,则比例会有所不同.我认为这是因为betaGSD5数据集上的最高BiasAM值~64和kmGSD5数据= 100.

如何手动更改scale_area以使betaPlot比例与kmPlot比例匹配?

还可以手动设置图例中断吗?而不是自动生成,可以指定我的传说,但我想这样吗?0-10,10-30,30-50,50-70,70-100,

100

betaGSD5数据:https://dl.dropbox.com/u/63947093/betaGSD5.csv

kmGSD5数据:https://dl.dropbox.com/u/63947093/kmGSD5.csv

这是beta版代码

betaPlot <- ggplot(betaGSD5, aes(N,PctCens,size=BiasAM,label=NULL)) +
  geom_point(colour="red", shape=16) +scale_area(to=c(1,10)) +
  xlab("Sample size") + ylab("Percent censored") +
  xlim(0,100)+ ylim(0,100) +
  theme_bw()+
  opts(
 #legend.position='none',
  panel.grid.minor = theme_blank(),
  panel.background = theme_blank(),
  axis.ticks = theme_blank(),
  axis.title.x=theme_text(face='bold',vjust=0.2, size =12), #size=15 #hjust:move     horizonal, vjust-move verticall
  axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12))
print(betaPlot)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

KM情节

kmPlot <- ggplot(kmGSD5, aes(N,PctCens,size=NewBiasAMpct,label=NULL)) +
    geom_point(colour="red", shape=16) +scale_area(to=c(1,10)) +
    xlab("Sample size") + ylab("Percent censored") +
    xlim(0,100)+ ylim(0,100) +
    theme_bw()+
    opts(
      #legend.position='none',
     panel.grid.minor = theme_blank(), …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

逐行拆分数据帧

我有一个像这样的长数据帧:

  Row  Conc   group
  1     2.5    A
  2     3.0    A
  3     4.6    B
  4     5.0    B
  5     3.2    C
  6     4.2    C
  7     5.3    D
  8     3.4    D
Run Code Online (Sandbox Code Playgroud)

...

实际数据有数百行.我想将A分为C和D.我查阅了网页,找到了几个解决方案,但不适用于我的情况.

如何拆分数据框?

例如:案例1:

x = data.frame(num = 1:26, let = letters, LET = LETTERS)
set.seed(10)
split(x, sample(rep(1:2, 13)))
Run Code Online (Sandbox Code Playgroud)

我不想以任意数字分割

案例2:按级别/因子拆分

data2 <- data[data$sum_points == 2500, ]
Run Code Online (Sandbox Code Playgroud)

我也不想分开一个因素.有时我想将多个层次结合在一起.

案例3:按行号选择

newdf <- mydf[1:3,]
Run Code Online (Sandbox Code Playgroud)

实际数据有数百行.我不知道行号.我只知道我想分开的级别.

r

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

循环遍历R中的数据帧列表并应用if else函数

我有一个数据框列表,并希望通过列表应用if else函数

df1= data.frame(letter=LETTERS[1:5], res=runif(10), cens=rep(0:1,5))
df2= data.frame(letter=LETTERS[1:5], res=runif(10), cens=rep(0,5)) 
df3= data.frame(letter=LETTERS[1:5], res=runif(10), cens=rep(0:1,5))
df4= data.frame(letter=LETTERS[1:5], res=runif(10), cens=rep(0,5)) 


df.list=list(df1,df2,df3,df4)

reg.stats = function(var1){
  gm.reg=exp(mean(log(var1)))
  gsd.reg=exp(sd(log(var1)))
  return(c(gm.reg,gsd.reg))
  }

 other.stats = function(obs,cens){
 nondetects <- obs[cens==1]
 detects <- obs[cens== 0]
 gm.other=exp(mean(log(detects)))
 gsd.other=exp(sd(log(detects)))
 return(c(gm.other,gsd.other))
 }
Run Code Online (Sandbox Code Playgroud)

我想循环遍历每个df,如果单个df = 0(即df2)中的cens变量之和,则应用reg.stats函数,否则应用other.stats函数.

在真实数据集中,我有一个50多个dfs的列表,我过去做的是手动挑选所有cens = 0的dfs并使用lapply函数.没关系,但如果我将数据框分开并为每个列表单独使用lapply然后合并结果,则更改顺序,然后我需要重新排序结果.有更快,更清洁的方法吗?

  uncens.list = df.list[c(2,4)]
  uncens.res= lapply(uncens.list, function(i) reg.stats(i$res))

  cens.list = df.list[c(1,3)]
  cens.res.=lapply(cens.list,function(i) other.stats(i$res,i$cens))
Run Code Online (Sandbox Code Playgroud)

r

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

如何在 R 中向 scatterplot3d 添加图例

我想在我的 scatterplot3d 中添加图例。我创建了 3 个单独的图并将它们叠加到 1 个图中,所以我不知道图例的语法(“topleft”,inset=0.5)应该去哪里

Plot <-scatterplot3d(data$Size,data$Pct,data$bias1, type='h', zlim=c(-20,100), xlab="size", ylab= "Percent", zlab="Bias")

Plot$points3d (data$Size,data$Pct,data$Bias2,
  col="blue", type="h", pch=15, cex=.6)  

Plot$points3d(data$Size,data$Pct,data$Bias3,
  col="red", type="h", pch=4, cex=.6)  
Run Code Online (Sandbox Code Playgroud)

r scatter-plot

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

将数据帧与数据帧列表相匹配,并将新变量添加到 R 中的列表中

我有 2 个独立的数据框

df1

ID      Name     loq
1        a       1.2 
1        b       1.4
1        c       1.0
2        a       0.5
2        b       0.7
2        c       0.3
3        a       0.5
3        b       0.2
3        c       0.1        
Run Code Online (Sandbox Code Playgroud)

df2 这是数据帧列表

[1]  ID     Name   
     1       a 
     3       b
     2       c
     2       a

 [2]  ID     Name
      3      c
      2      b
      2      a
      1      c
Run Code Online (Sandbox Code Playgroud)

df2 的结果如下所示

  [1]  ID     Name   loq 
     1       a     1.2
     3       b     0.2
     2       c     0.3
     2       a     0.5

 [2]  ID     Name    loq …
Run Code Online (Sandbox Code Playgroud)

r

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

如何舍入向量由数字,NA和NaN组成

对由数字,NA和NaN组成的向量进行舍入的最佳方法是什么?我不想省略NA或NaN,因为我想保留数字的顺序.

x = c(2,3,4,NA,"NaN",3, 5)
round(x,2)  #does not work 
Run Code Online (Sandbox Code Playgroud)

编辑:回合中的错误(x,2):数学函数的非数字参数

r

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

R错误:要替换的项目数不是替换长度R的倍数

我编写了以下代码并得到了错误:要替换的项目数不是代码行中替换长度的倍数:

 X_after[count, ] = c(censN1, censN2, censN3)
Run Code Online (Sandbox Code Playgroud)

在搜索互联网之后,我发现问题可能是由预先确定n_samplesNA和最终 X_after数据集的无法匹配的样本数量引起的.如何调整矩阵代码,使其ncol在循环后动态确定,而不是在n_samples预先确定?或者,如果您对此错误消息有其他解决方案,请同时插入.

multiLodSim <- function (GM, GSD, n_samples, n_iterations, p) {    
  X_after <- matrix(NA_real_, nrow = n_iterations, ncol = n_samples)
  delta <- matrix(NA_real_, nrow = n_iterations, ncol = n_samples)
  mu <- log(GM)
  sigma <- log(GSD)
  lod1 <- quantile(rlnorm(100000,mu,sigma),p)
  lod2 <-  quantile(rlnorm(100000,mu,sigma),(p*0.95))
  lod3 <- quantile(rlnorm(100000,mu,sigma),(p*0.9)) 
  pct_cens <- numeric(n_iterations)
  count <- 1
   while(count <= n_iterations) {     
   sub_samples = n_samples/3   # divide the total sample into third (for 3 …
Run Code Online (Sandbox Code Playgroud)

r

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

R中语法错误中的简单if else语句

我想R到以下:如果LocID等于3,4,7,8,14那么数据$ newConc等于数据$ conc/2 else数据$ newConc < - data $ conc#else保持conc相同

data$newConc <- if(data$LocID == c(3,4,7,8,14))
data$conc/2 else data$conc

str(data)
 $ LocID     : int  1 2 3 4 5 6 7 8 9 10 ...
 $ time      : int  1 1 1 1 1 1 1 1 1 1 ...
$ conc      : num  0.03695 0.0155 0.00738 0.00753 0.01795 ...
Run Code Online (Sandbox Code Playgroud)

警告:条件长度> 1且仅使用第一个元素

r

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

标签 统计

r ×11

ggplot2 ×3

distribution ×1

probability ×1

scatter-plot ×1

statistics ×1