我确信这已经被问到了,有几种方法可以做到。但是,我已经搜索过,但仍然找不到有用的东西。我尝试了“应用”路线,但它不起作用,我认为它可能是b / c第一列是一个因素。我想计算整行的平均值然后将该平均值添加到行的末尾,在标题为'mean'的新列中
以下是我的数据框架
stream n 1 2 3 4
1 Brooks 3 0.42707006 1.9353659 1.4333884 1.8566225
2 Siouxon 3 0.90503736 0.2838483 0.2838483 1.0023212
3 Speelyai 3 0.08554021 0.7359903 0.4841935 0.7359903
4 Brooks 4 1.43338843 1.8566225 0.0000000 1.3242210
5 Siouxon 4 0.50574543 0.5057454 0.2838483 0.4756304
6 Speelyai 4 0.32252396 0.4343109 0.6653132 2.2294652
7 Brooks 5 0.88984211 1.8566225 0.7741612 1.3242210
但是,如果列标题是1,2,3,4 ...那么这就是1000!所以真的有1002列,但前两列实际上是向量,一个流名称,然后是n,它是一个样本标识符。当我尝试apply
函数时,它返回了这个:
apply(sim_dat,1,mean)
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
#27 28 29 30 31 32 33 34 35 36 37 38 39 40
#NA NA NA NA NA NA NA NA NA NA NA NA NA
#41 42 43 44 45 46 47 48 49 50 51 52 53 54
#NA NA NA NA NA NA NA NA NA NA NA NA NA NA
答案 0 :(得分:0)
如果您在计算过程中忽略前两列,则可以使用rowMeans
。例如
sim_dat$mean <- rowMeans(sim_dat[,-(1:2)])
这将添加一个名为means
的列,其中包含除前两列之外的每行的值。