老师您好,学生想请教一下如何用stata计算G指数。
G指数的计算方法为:将发表的论文按被引次数由高向低排序,将序号平方,被引次数按序号层层累加,当序号平方大于等于累计被引次数时,该序号则为g指数。如序号平方不是恰好等于而是小于对应的累计被引次数,则最接近累计被引次数的序号即为g指数。简而言之,g 指数是引频累积数量大于等于序号平方的最大序号。
举个例子:
某个学者发表了10篇论文,具体引用次数如下:
论文序号 1 2 3 4 5 6 7 8
被引频次 30 8 6 5 5 4 3 2
累计被引频次 30 38 44 49 54 58 61 63
序号平方 1 4 9 16 25 36 49 64
表1的第3行和第4行分别计算了该学者的累积被引频次和论文序号的平方。通过将二者依次对比可以发现,当论文序号为7时,该作者的累积被引频次61大于论文序号的平方49;但当论文序号为8时,该作者的累积被引频次63开始小于序号的平方64,所以该学者的g指数为7。
author代表作者,year代表年份,times代表被引频次。
从大于等于0的至少有0个循环起,另外生成一个新列或新的数据集,对应author,year,G。
还望老师百忙之余可以指点一二,学生不胜感激。
----------------------- copy starting from the next line -----------------------
- * Example generated by -dataex-. For more info, type help dataex
- clear
- input int(year times) str6 code
- 1999 0 "000100"
- 1999 61 "000100"
- 2000 0 "000100"
- 2000 6 "000100"
- 2003 0 "000100"
- 2003 16 "000100"
- 2005 0 "000100"
- 2005 0 "000100"
- 2005 0 "000100"
- 2005 5 "000100"
- 2005 13 "000100"
- 2005 16 "000100"
- 2006 1 "000100"
- 2006 1 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 0 "000100"
- 2007 1 "000100"
- 2007 1 "000100"
- 2007 2 "000100"
- 2007 2 "000100"
- 2007 2 "000100"
- 2007 3 "000100"
- 2007 4 "000100"
- 2007 4 "000100"
- 2007 4 "000100"
- 2007 6 "000100"
- 2007 6 "000100"
- 2007 6 "000100"
- 2007 7 "000100"
- 2007 7 "000100"
- 2007 9 "000100"
- 2007 10 "000100"
- 2007 13 "000100"
- 2007 13 "000100"
- 2007 16 "000100"
- 2007 25 "000100"
- 2007 28 "000100"
- end
复制代码------------------ copy up to and including the previous line ------------------