我找不到这个非常基本问题的答案。我只想重命名矩阵的一个特定行。使用数据框架很容易,如何使用矩阵完成?当然,可以来回转换,而不是重点。
在尝试将函数quantile
和mean
的输出组合到一个矩阵中时,这就出现了。
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
工作正常,但如果我要有数百行,那就不实用了。谢谢。
答案 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