2009-10-31 73 views
3

我正試圖計算數據集s的中值向量,列A1B1。中值向量是來自兩列的每個觀察值的中值。如何找到使用R的2列的中值?

我試圖做到這一點,它沒有奏效。

median(s[c("A1","B1")]) 

有沒有另一種方法呢?

回答

6

兩次觀察的中位數就是平均值。所以rowMeans(s[,c("A1","B1")])。等同地,apply(s[,c("A1","B1")],1,median)

+0

是的,它的工作原理! 我正在考慮一個doulbe循環,這很簡單。 使r = 0 爲(在1 I:2512) { \t爲(j在C(1,5,9,13,17,21,25,29,33)) \t \t {結果=中值(s [i,j],s [i,j + 4],s [i,j + 8],s [i,j + 12]) \t \t r = rbind(r,result) } } – Rbuilder 2009-10-31 17:55:01

6

另一種解決方案:

library(plyr) 
colwise(median)(s[c("A1", "B1")]) 

其具有返回數據幀的優點。

+0

莫名其妙我的R無法識別此命令 – Rbuilder 2009-10-31 19:42:10

+0

您需要先安裝plyr軟件包。 – 2009-11-01 01:02:20