使用dplyr使用colnames对每行执行函数

时间:2015-09-16 12:36:28

标签: r dplyr

我是dplyr的新手,通常只使用基础R。

我一直在试图弄清楚如何计算每行的几个统计数据并且还没有管理它,这与其他问题不同,因为我正在尝试计算整行 - 甚至更好地选择每行计算几列来计算统计数据。

例1:

列中带有样本名称的计数矩阵

输入:

cont1 cont2 cont3
1      2     3
55     67    25

输出:

cont1 cont2 cont3 contAVG
1      2     3    2
55     67    25

第一个问题是将DF转换为数字,我包括这个问题我错过了一个更简单的解决方案。

data_cont %>% 
   mutate_each(funs(as.character)) %>% 
   mutate_each(funs(as.numeric)) %>% 
   rowwise() %>% 
   mutate(avg= mean(.))

在这里,我只是希望在所有列中得到一个行平均值,我想要理想地计算几个不同的统计数据,即每行的min,max,sd。

示例2

原始表包含多个不同的条件,200多列,即。

输入:

contV1 wtV3 contV4 wtV5 trV8 trV9 ...... contV180
1       4     2     0     66   89           289

输出:

contV1 wtV3 contV4 wtV5 trV8 trV9 ...... contV180 contAVG wtAVG trAVG
1       4     2     0     66   89           289      x      y     z           

是否可以使用匹配对不同列的每行计算统计数据进行分组而不分割成较小的矩阵?这将导致最终矩阵有3个额外的列,显示所有cont / wt / tr样本的平均值。

我意识到我可以使用基础R中的apply(),但我真的希望使用dplyr更有效。

0 个答案:

没有答案