重命名矩阵的一个特定行(R)

时间:2016-04-26 01:13:03

标签: r matrix rename

我找不到这个非常基本问题的答案。我只想重命名矩阵的一个特定行。使用数据框架很容易,如何使用矩阵完成?当然,可以来回转换,而不是重点。

在尝试将函数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

工作正常,但如果我要有数百行,那就不实用了。谢谢。

2 个答案:

答案 0 :(得分:6)

通过索引的直接方法。

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

答案 1 :(得分: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