如何获得属于五分之一的x?

时间:2014-02-22 18:11:10

标签: r share

我正在学习使用R作为大学的计量经济学项目,所以原谅我的n00bness

基本上,使用和给定 - 矩阵“股票价格”(行=天,coloumns =公司的股票价格) - 另一个矩阵“市值”(行=天,coloumns =公司的市值),我必须聚集在一起第三个矩阵是每天观察市场资本总额分配的第一个五分之一的股票价格,然后我必须将“小盘股”的均值放在第四个向量中。 我工作的教授建议我使用五分位函数,所以我的问题是......如果“i”股票属于第一个或最后一个五分位数,我怎么办? 感谢即将到来的帮助!

for (i in 1:ndays){
  quantile(marketcap[i,2:nfirms],na.rm=TRUE)
  for (j in 1:nfirms){
  if marketcap[j,i] #BELONGS TO THE FIRST QUINTILE OF THE MARKETCAPS
      thirdmatrix <- prices[i,j]
  }
  fourthvector[i] <- mean(thirdmatrix[i,])
}

1 个答案:

答案 0 :(得分:6)

这是一种了解值属于哪个五分位数的方法。请注意,我使用了具有“开放”结束的五分位数,即每个值恰好属于一个五分位数。

a <- 2:9  # reference vector
b <- 1:10 # test vector

quint <- quantile(a, seq(0, 1, 0.2)) # find quintiles
#   0%  20%  40%  60%  80% 100% 
#  2.0  3.4  4.8  6.2  7.6  9.0 

# to which quintile belong the values in 'b'?
findInterval(b, quint, all.inside = TRUE)
# [1] 1 1 1 2 3 3 4 5 5 5