我正在寻找R中的一些脚本/包(Python也会这样做),以从高斯和Gamma分布的混合中找出组件分布参数.到目前为止,我已经使用R包"mixtools"将数据建模为高斯混合,但我认为它可以通过Gamma加高斯来更好地建模.
谢谢
我有以下简单数据.我希望将"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) 我有一个带有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)
提前致谢
我正在尝试将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的直方图.任何人都可以纠正这个问题.
我有一个数据框,其中有许多列带有公共前缀“_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) 对于这个微小的代码,它总是在全局代码块中打印@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) 我有以下数据框,我想为每一行计算单词“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() ?
谢谢