2016-04-26 90 views
0

我无法找到这个非常基本问题的答案。我只想重命名一个矩阵的特定行。容易处理数据帧,如何用矩阵完成?当然,可以来回转换,而不是转换。重命名矩阵的一个特定行(R)

当试图将函数quantilemean的输出组合到一个矩阵中时,这一点已经浮出水面。

DF <- structure(list(FwdD1 = c(2.2, 2.8, 0.7, 1.1, -0.9, 2.5), FwdD2 = c(2.6,2.2, 2, -1.4, 2.8, 4), FwdD3 = c(1.2, 1.7, 9, -1.6, 1.7, 1.1),FwdD4 = c(1.6, 1.9, 5.4, 1.2, 1.4, 0.8), FwdD5 = c(4.7, 3,4.8, -1.2, 0, 0.2)), .Names = c("FwdD1", "FwdD2", "FwdD3","FwdD4", "FwdD5"), row.names = c("10007", "57926", "95462", "142373","181339", "229476"), class = "data.frame") 

Quantiles <- round(apply(DF, 2, quantile, na.rm=TRUE),2) 
Mean <- round(apply(DF, 2, mean, na.rm=TRUE),2) 
Mean <- as.matrix(Mean,drop=FALSE) 
QuantilesMean <- rbind(Quantiles,t(Mean)) 
rownames(QuantilesMean) <- c("0%","25%","50%","75%","100%","Mean") 


#Output of QuantilesMean matrix: 
    FwdD1 FwdD2 FwdD3 FwdD4 FwdD5 
0% -0.90 -1.40 -1.60 0.80 -1.20 
25% 0.80 2.05 1.12 1.25 0.05 
50% 1.65 2.40 1.45 1.50 1.60 
75% 2.42 2.75 1.70 1.82 4.28 
100% 2.80 4.00 9.00 5.40 4.80 
Mean 1.40 2.03 2.18 2.05 1.92 

工作正常,但如果我有几百行,这将是不实际的。谢谢。

回答

5

(在标题的问题,请参见@ AdamQuek的答案)

对于特定的应用程序,尝试:

res = sapply(DF, function(x) c(quantile(x), Mean = mean(x))) 

如果您需要在浏览时它圆:

round(res, 2) 

    FwdD1 FwdD2 FwdD3 FwdD4 FwdD5 
0% -0.90 -1.40 -1.60 0.80 -1.20 
25% 0.80 2.05 1.12 1.25 0.05 
50% 1.65 2.40 1.45 1.50 1.60 
75% 2.42 2.75 1.70 1.82 4.28 
100% 2.80 4.00 9.00 5.40 4.80 
Mean 1.40 2.03 2.18 2.05 1.92 
3

通过索引的直接方法。

rownames(QuantilesMean)[6]<-"Mean"