小编The*_*ust的帖子

高斯和伽马分布的混合

我正在寻找R中的一些脚本/包(Python也会这样做),以从高斯和Gamma分布的混合中找出组件分布参数.到目前为止,我已经使用R包"mixtools"将数据建模为高斯混合,但我认为它可以通过Gamma加高斯来更好地建模.

谢谢

r gaussian gamma-distribution mixture-model

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

在R中的不同Y轴上向条形图添加线条

我有以下简单数据.我希望将"V"对比D1,D2,D3值作为并排条形图和累积和,CS1,CS2,CS3作为线,并且在不同的Y尺度上.虽然如第一幅图所示绘制并排条形图相对容易,但我发现很难添加CS1-CS3色谱柱的线图.最终的情节看起来像第二个图 感谢您的帮助

V   D1  D2  D3  CS1 CS2 CS3
10  2038    1806    1643    72.81171847 64.52304394 58.69953555
20  550 709 757 92.46159343 89.85351911 85.7449089
30  142 192 271 97.53483387 96.71311183 95.42693819
40  45  61  80  99.14255091 98.89246159 98.28510182
50  12  20  30  99.57127546 99.6070025  99.35691318
60  5   6   10  99.74991068 99.82136477 99.71418364
70  2   2   3   99.82136477 99.89281886 99.82136477
80  4   1   2   99.96427295 99.92854591 99.89281886
90  1   0   1   100.0000000 99.92854591 99.92854591
100 0   1   0   100.0000000 …
Run Code Online (Sandbox Code Playgroud)

graphics plot r

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

R:选择包含给定数量的NA的行

我有一个带有NA的六列数据帧.我希望只选择那些包含最多三个NA的行.我可以找到使用的NA的数量,sum(is.na(my.df[,c(1:6)])),但无法使用"子集"或任何其他函数选择数据帧的子集,条件sum(is.na(log.df[,c(1:6)])) <=3 最终我希望计算每个选定行的中位数.示例数据显示下面:

C1  C2  C3  C4  C5  C6
6.4 NA 6.1 6.2 NA NA
7.1 6.4 6.5 5.9 7 6.9
7.1 7 6.9 6.9 6.9 7
6.9 NA 6.9 NA 7.1 NA
6.8 NA 7.1 7.1 6.8 7.2
NA NA NA NA NA 6.4
NA NA NA NA NA 6.7
Run Code Online (Sandbox Code Playgroud)

提前致谢

r

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

在ggplot中更改x轴刻度颜色

我正在尝试将X.axis刻度颜色的颜色更改为Black,如下所述:https: //github.com/hadley/ggplot2/wiki/Axis-Attributes#axistextx-text
但是当我运行我的代码时收到错误消息:
Error: could not find function "theme"

ggplot(long.repmixed.df, aes(x = log10intensity, colour = channel, fill = channel)) +
geom_bar(position="dodge") +
theme(axis.text.x = element_text(colour = "black")) +
opts(panel.background = theme_rect(fill = 'white', colour = 'black')) +
opts(panel.grid.major = none, panel.grid.minor = none)
Run Code Online (Sandbox Code Playgroud)

我基本上试图绘制没有网格和白色BG的直方图.任何人都可以纠正这个问题.

plot r ggplot2

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

R:根据多列中的值选择行

我有一个数据框,其中有许多列带有公共前缀“_B”,例如'_B1'、'_B2'、...'_Bn'。这样我就可以通过以下方式获取列名:

allB <- c(grep( "_B" , names( my.df ),value = TRUE ) )
Run Code Online (Sandbox Code Playgroud)

我希望选择这些 _B* 列中的每一个都通过单个条件的行,例如 values >= some_cutoff

有人能告诉我怎么做吗,我对 'all()' 和 'any()' 的努力失败了

set.seed(12345)     
my.df <- data.frame(a = round(rnorm(10,5),1), m_b1= round(rnorm(10,4),1),m_b2=round(rnorm(10,4),1))
allB <- c(grep( "_b" , names( my.df ),value = TRUE ) )
> my.df
     a m_b1 m_b2
1  5.6  3.9  4.8
2  5.7  5.8  5.5
3  4.9  4.4  3.4
4  4.5  4.5  2.4
5  5.6  3.2  2.4
6  3.2  4.8  5.8
7  5.6  3.1  3.5
8  4.7  3.7 …
Run Code Online (Sandbox Code Playgroud)

r

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

Perl子程序本地全局问题

对于这个微小的代码,它总是在全局代码块中打印@x的值.如果我不小心在没有'my @x'的情况下初始化子程序中的变量,如何发出警告.我不是子程序中的局部变量@x.

use strict;
use warnings;
my @x=qw/1 2 3/;

&mysub();

sub mysub{

    print "@x";
}
Run Code Online (Sandbox Code Playgroud)

perl scope subroutine

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

计算数据框多列中字符串的出现次数

我有以下数据框,我想为每一行计算单词“High”的出现次数,并将“countHigh”作为另一列附加到数据框

     a    b    c
1 High High High
2 High  Low High
3  Low  Low High
Run Code Online (Sandbox Code Playgroud)

所以我应该得到一个计数向量(3,2,1)。

我试过 apply() 和 stringr:str_count 如下:

> apply(test.df[,1:3],1,str_count,"High" )

    [,1] [,2] [,3]
[1,]    1    1    0
[2,]    1    0    0
[3,]    1    1    1
Run Code Online (Sandbox Code Playgroud)

我两次使用了 apply() 函数:

> apply(apply(test.df[,1:3],1,str_count,"High" ),2,sum)
[1] 3 2 1
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,特别是只使用一次 apply() 并使用 grep() 或 which() ?

谢谢

r

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