【问题标题】:How to get the x which belongs to a quintile?如何获得属于五分位数的 x?
【发布时间】:2018-04-11 13:24:32
【问题描述】:

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

基本上,使用并给出 - 矩阵“股票价格”(行 = 天,列 = 公司的股票价格) - 另一个矩阵“市值”(行 = 天,列 = 公司的市值),我必须收集第三个矩阵是属于每天观察的市值分布的前五分之一的股票价格,然后我必须将“小型股”的平均值放在第四个向量中。 我为之工作的教授建议我使用五分位函数,所以我的问题是……如果“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,])
}

【问题讨论】:

  • 请提供一个可重现的例子。

标签: r share


【解决方案1】:

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

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

【讨论】:

  • 所以基本上我必须应用 findInterval 并询问结果值是否为 1?像 [ x
猜你喜欢
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
相关资源
最近更新 更多